Comment faire pour avoir plusieurs suites de nombres aléatoires toujours identiques et que chaque suite soit différente?
toto = Array(10, 15, 8) ' array de 3 valeurs que l'on va utiliser de manière cycliquemais cela serait assez curieux et remplaçable alors par un seul cycle de 3 tirages aléatoires, dont il suffirait ensuite de r(épéter en boucle les résultats issus du premier cycle !
For k = 0 To 12 ' === et donc 4 cycles de racines pour randomize
y = k Mod 3 ' ===>> t donc 10, 15 ou 8
x = Rnd(-1) '
Randomize toto(y)
MsgBox (Rnd)
Next
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionRandomizeEt qui serait alors puiser aléatoirement dans une liste constituée une fois pour toutes de manière aléatoire.
'1) je remplis de nombres aléatoires un tableau dynamique de 4 lignes dont
' chaque ligne contient une liste de 5 nombres aléatoires de 0 à 7
Dim toto(1 To 4, 1 To 5) As Integer
For i = 1 To 4
For j = 1 To 5
toto(i, j) = Int((8 * Rnd))
' MsgBox toto(i, j)
Next
Next
'2) Je tire 20 fois au hasard dans le tablo toto
For i = 1 To 20
tirage_ligne = Int((UBound(toto)) * Rnd) + 1
'cette ligne étant ainsi tirée au hasard, j'en lis toutes les colonnes
MsgBox "voilà une liste (pouvant revenir) : " & vbCrLf & toto(tirage_ligne, 1) & vbCrLf & toto(tirage_ligne, 2) & _
vbCrLf & toto(tirage_ligne, 3) & vbCrLf & toto(tirage_ligne, 4) & vbCrLf & toto(tirage_ligne, 5)
Next
nPIXELS ' valeur d'un TextBox nDEP ' " rand ' " ' x et y = centre Picture For i = 1 To nPIXELS ' nombre de pixels initiaux For j = 1 To nDEP ' nombre de déplacements pour le pixel initial rand = rand + 1 Select Case Int(8 * Rnd(rand) + 1) Case 1: y = y - 1 Case 2: x = x + 1: y = y - 1 ' etc jusqu'à Case 8 End Select ' dessine le pixel en x,y avec une couleur dépendante de l'angle Next j Next i
Me.Font = "Courier New" Private Sub Command1_Click() Dim i As Integer Dim j As Integer Dim h As Integer Dim n As Long Dim n1 As Long Dim n2 As Long Dim rand As Double Dim t(16) As Integer n1 = Val(Text1.Text) ' nombre de pixels initiaux n2 = Val(Text2.Text) ' nombre de déplacements pour chaque pixels rand = Val(Text3.Text) Me.Cls: List1.Clear For i = 1 To n1 For j = 1 To n2 rand = rand + j h = Int(16 * Rnd(-rand) + 1): t(h) = t(h) + 1 If n * j < 200 Then List1.AddItem h Next j Next i Print For i = 1 To 16: Print Format$(i, " 00 ") & t(i): n = n + t(i): Next Print n, Print n1 * n2 End Sub