Problemme avec rnd.

abdel - 12 avril 2001 à 04:37
 marc - 28 avril 2001 à 07:23
j'ai un probleme avec randomize
je veux 5 nombres aleatoires entre 0 et 8
je fais (rnd*8)\1
mais parfois il y a repetition des nombres parmi ces nombres là.

comment faire pour avoir une combinaison unique commme(1 ,3,6 5,7) et non comme (2,3,2 , 1,4) car il ya 2fois le nombre 2.

merci

2 réponses

Ben tu peut toujours essayer ceci,

' Un CommandButton nommé "cmdRandom"
' Une ListBox nommée "ListBox1"
' Et le code:

Private Sub cmdRandom_Click()

Dim I As Long
Dim Nombre As String

Do

Do

Randomize Timer
I = Int(Rnd * 8)

DoEvents

Loop Until InStr(1, Nombre, I) <= 0

Nombre = Nombre & I
DoEvents

Loop Until Len(Nombre) = 5

ListBox1.Clear
For I = 1 To Len(Nombre)

ListBox1.AddItem Mid$(Nombre, I, 1)

Next I

End Sub

Je viens tout juste de l'essayer et ca fonctionne #1, je ne pensais pas que ca fonctionnerais aussi bien :-p .

En cas de problème(s) ou autre(s) : [mailto:NitRic28@Hotmail.com VB_MAN]
0
Bonsoir,
La réponse est très correcte et de aussi élegante que simple
ce qui est rare et qui montre que notre correspondant sait
de quoi il parle
J´ai testé les intructions de VB Man en aportant les modifications suivantes.
Randomize Int(CBdl(Now)) + Timer 'pour~^etre certain de ne
pas avoir deux fois la même semence.
Rnd = Int(10*rnd)) Sinon le 9 n´apparait jamais
Comme je voulais 40 nombres de 10 chiffres j´ai du ajouter une boucle for..next en remettant chaque fois numero a " " et
dans le dernier loop ....Len(numero)=11 pour obtenir 10 chiffres.
Si on veut travailler un peu (ou s´amuser un peu), il y a moyen de faire de belles choses..(en math..).
A +
Marc
0
Rejoignez-nous