• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

dizi içinde sayıların rastgele dizilimi

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,201
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,
1' den 5' e kadar olan sayıları rastgele dizen bir fonksiyon var mıdır?

Aşağıdaki gibi bir fonksiyon oluşturmaya çalıştım ama; hem çok uzun oldu hemde tüm seçenkleri kapsamıyor?

yardımlarınız için şimdiden teşekkürler,
iyi pazarlar.

Kod:
Function vbRandom(Optional deger As Integer) As Variant
Dim dizi As Variant
Dim x As Integer

x = Application.WorksheetFunction.RandBetween(1, 10)

If x = 1 Then
    dizi = Array(1, 2, 3, 4, 5)
ElseIf x = 2 Then
    dizi = Array(2, 3, 4, 5, 1)
ElseIf x = 3 Then
    dizi = Array(3, 4, 5, 1, 2)
ElseIf x = 4 Then
    dizi = Array(4, 5, 1, 2, 3)
ElseIf x = 5 Then
    dizi = Array(5, 1, 2, 3, 4)
ElseIf x = 6 Then
    dizi = Array(5, 2, 3, 4, 1)
ElseIf x = 7 Then
    dizi = Array(5, 3, 4, 1, 2)
ElseIf x = 8 Then
    dizi = Array(3, 4, 1, 2, 5)
ElseIf x = 9 Then
    dizi = Array(4, 1, 2, 5, 3)
Else
    dizi = Array(1, 2, 5, 3, 4)
End If

vbRandom = dizi

End Function
 
Merhaba,
Sorunuzdan benim anladığım
C++:
Function RandomSayilar(DegiskenMiktarı As Integer) As String
    Dim benzersiz() As Integer
    Dim rndSayi As Integer, sayac As Integer, i As Integer
    Dim sonuc As String
    
    ReDim benzersiz(1 To DegiskenMiktarı) ' Dinamik dizi tanımlama
    Randomize
    
    Do While sayac < DegiskenMiktarı
        rndSayi = Int(DegiskenMiktarı * Rnd) + 1
        For i = 1 To sayac
            If benzersiz(i) = rndSayi Then GoTo SkipLoop
        Next i
        sayac = sayac + 1
        benzersiz(sayac) = rndSayi
        sonuc = sonuc & rndSayi & ", "
SkipLoop:
    Loop
    
    ' Sondaki virgülü kaldırarak sonucu döndür
    RandomSayilar = Left(sonuc, Len(sonuc) - 2)
    
End Function
 
Merhaba,
Sorunuzdan benim anladığım
C++:
Function RandomSayilar(DegiskenMiktarı As Integer) As String
    Dim benzersiz() As Integer
    Dim rndSayi As Integer, sayac As Integer, i As Integer
    Dim sonuc As String
   
    ReDim benzersiz(1 To DegiskenMiktarı) ' Dinamik dizi tanımlama
    Randomize
   
    Do While sayac < DegiskenMiktarı
        rndSayi = Int(DegiskenMiktarı * Rnd) + 1
        For i = 1 To sayac
            If benzersiz(i) = rndSayi Then GoTo SkipLoop
        Next i
        sayac = sayac + 1
        benzersiz(sayac) = rndSayi
        sonuc = sonuc & rndSayi & ", "
SkipLoop:
    Loop
   
    ' Sondaki virgülü kaldırarak sonucu döndür
    RandomSayilar = Left(sonuc, Len(sonuc) - 2)
   
End Function
teşekkürler Hocam
 
Geri
Üst