Problème de doublons

adrienphp Messages postés 34 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 31 juillet 2006 - 21 août 2003 à 21:23
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 22 août 2003 à 19:19
Salut à tous,

Voila, je fais un système de tirage au sort en vb (style loto).
J'utilise la fonction randomize. Jusque la pas de pb, mais je souhaite ne pas avoir de doublons.
Si je prends des nombres de 1 à 50, par ex 2 ne peut pas sortir plusieurs fois. Comment puis je faire ?

adrien :-p

4 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
21 août 2003 à 22:57
Le stocker dans un tableau et le parcourir pour voir si cette valuer est deja presente.
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
22 août 2003 à 00:49
plus simple

nombre = ubound - lbound
for i = Lbound(tableau) to ubound(tableau)
rand = rnd() * nombre + lBound(tableau)
temp = tableau(i)
tableau(i) = tableau(rand)
tableau(rand) = temp
next i

tu crée un tableau avec tout les valeur de x à y
ensuite tu parcour à l'aide d'un for de x à y en inversant 2 valeur mis au hasard

un fois la boucle fini, c,est sur et certain que toute les valeur on été déplacé. J'ai fait le code de façon que la tableau soit pas obliger de commencer à 0, masi on peut déplacer des valeur situer n'importe où dasn le tableau
0
adrienphp Messages postés 34 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 31 juillet 2006
22 août 2003 à 17:15
J'ai pas tous compris ton script mais je vais essayer avec ton idée de tableau de variable.

Merci à vous deux

adrien :-p
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
22 août 2003 à 19:19
Lbound et ubound permet de connaitre la grandeur du tableau

donc je doir faire un boucle qui parcour tout le tableau, du début lbound au plus grand ubound

ensuite, on intervertie tout les nombre avec un random
0
Rejoignez-nous