sebleboss2002
Messages postés189Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention 3 avril 2005
-
25 févr. 2005 à 18:34
sebleboss2002
Messages postés189Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention 3 avril 2005
-
26 févr. 2005 à 01:31
Voilà, j'ai bien l'impression d'avoir un problème...
Je suis en train de coder un Yams, avec cinq dés donc, et je trouve que
les chiffres qui sortent à chaque tirage sont trop ressemblants...
Exemple, un tour je tire un carré de trois du premier coup, le tour
d'après, idem avec les cinq... Mais également, je n'ai jamais tiré de
trois en même temps que des cinqs ou de 1 avec des six...
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 26 févr. 2005 à 00:22
Arrêter de mettre un argument dans vos appel à Randomize !! Ca ne serrt a rien (et visiblement ca foire tout !!)
La ligne suivante ...
Randomize
... suffit a rendr ele pseudo-aléatoire suffisamment variable pour qu'on le considère variable !
Alros pourquoi Randomize accepte un argument ? Pour pouvoir ne pas faire d'aléatoire du tout justement !!!! Ca peu paraitre con mais on a parfois besoin que le pseudo-aléatoire ne le soit pas du tout ! Si vous êtes en train de débugger un programme ave cdu random dedans, et bien mieux vaudrait pour vous que le pseudo-aléatoire ne soit pas du tout aléatoire !! Il suffit alors de remplacer la ligne ...
Randomize
... par ca ...
Randomize(1)
... ou ca ...
Randomize (1000)
et vous avez du pseudo-aléatoire figé ! C'est a cela que sert l'argument de Randomize !! Pas a rendre celui-ci plus aléatoire. Quand vous ne mettez pas d'argument à Randomize, il prend l'horloge système comme racine de l'algo de génération de nombre pseudo-aléatoire, donc c'est toujours unique et suffisamment pour que le pseudo-aléatoire paraisse vraiment aléatoire !!
jsem2k1
Messages postés125Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention12 août 20081 25 févr. 2005 à 22:20
Tu peux aussi essay :
Function Rand()
Randomize (now)
Rand = Int(Rnd * 6) + 1
End Function
valDe
1 = Rand
valDe
2 = Rand
valDe
3 = Rand
valDe
4 = Rand
valDe
5 = Rand
En fait, Randomize ne génaire pas vraimenr des chiffre de facon aléatoire. Ce n'ai qu'une formule qui VB utilise. Morale de l'histoir si on connais la formule on peux prédire le résultat que va sortir lordinateur
le meilleur moyent d'éviter ce la c de taper sur la clock interne a chaque fois en envoyant le paramètre now a la commande Randomize.
sebleboss2002
Messages postés189Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention 3 avril 2005 26 févr. 2005 à 00:03
Alors euh... Après test des deux méthodes :
Avec un Randomize Timer,
je tire toujours des nombres identiques à chaque fois (soit trois as,
soit trois trois...) ou alors des nombres dans une certain interval
(des as, deux et trois, mais pas de quatre cinq et six, ou vice-versa).
Avec une fonction Rand utilisant Randomize (Now), je tire les
mêmes séries de nombre à chaque fois (premier tirage = as, trois, cinq,
quatre, trois. Second tirage = quatre, cinq, quatre, deux, as.
Troisième tirage = trois, deux, as, as, cinq).
Existe-t-il vraiment une fonction permettant de renvoyer un nombre
vraiment au hasard en VB ? Si non, dans quel autre langage aurais-je
plus de chances de trouver une vraie fonction random ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
sebleboss2002
Messages postés189Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention 3 avril 2005 26 févr. 2005 à 00:38
Ok Crenaud, tu viens de m'apprendre quelque chose, merci :)
Mais par contre pour mon code euh... Ben avec un Random standard, j'ai
toujours des nombres qui reviennent trop souvent dans ma série de cinq
nombres (genre un carré d'as ou de cinq dès le premier tirage). J'ai
essayé de mettre un Randomize avant le tirage de chaque dé (randomize,
tirage dé1, randomize, tirage dé2, randomize, tirage dé3...), mais cela
n'arrange rien...
sebleboss2002
Messages postés189Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention 3 avril 2005 26 févr. 2005 à 01:31
Oui... Vérifié... Les apparitions de *paquets* de trois ou quatres
chiffres identiques successifs doivent être dues au fait qu'il n'y a
que 6 chiffres possibles...
J'vais me coucher moi !
Enfin, merci à tous d'avoir pris le temps de réfléchir à mon problème