mt_rand pas aléatoire??

Eléphant du PHP | 113 Messages

20 mai 2009, 10:43

Bonjour je vous expose mon problème le plus simplement possible.

Je simule un combat entre le camp A et le camp B. Les deux camps ont 540 armes chacun.

Ces armes sont regroupées dans un tableau unique ayant pour clé un chiffre (1,2,3,.... ) et en valeur le type d'arme.

je fait ensuite une boucle qui fait tirer chaque arme dans ce tableau.

A chaque tour de boucle je choisit une arme au hasard dans ce tableau via array_rand().

Ensuite je tire un chiffre entre 0 et 100: $reussite_tir = mt_rand(0,100);
Si le tir est en dessous de 25 il est considéré comme réussis, sinon échoué.

le tout 1080 fois.


Hors, aussi extraordinaire que sa paraisse, a chaque simulation de ce combat, le camp B gagne.
Nb de tirs réussis:

A: 171 - B: 277 par exemple.

Hors il n'y a aucune raisons pour que se soit le camp B qui gagne systématiquement ! Le A devrait lui aussi gagné de temps en temps.

Selon moi si il y a le même nb d'armes, les proba de réussite des deux camps devraient être identique.

Donc je comprend pas pk j'arrive systématiquement à ce résultat.


Si qq'un voit un défaut ou peut m'expliquer le pk de cet effet, je suis preneur car la je suis bloqué :(

Wells

ViPHP
ViPHP | 4039 Messages

20 mai 2009, 11:11

Sans code, dur de voir ce qui ne va pas :wink:

je doute en tout cas que mt_rand() soit la cause de ton souci.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphanteau du PHP | 34 Messages

22 mai 2009, 13:05

Ce n'est pas très clair comme fonctionnement.
Si je comprend bien, tu choisit au hasard une arme, puis tu choisit au hasard si le coup porte ou non :?:
These lines the last endeavor,
To find the missing lifeline.

ViPHP
ViPHP | 5924 Messages

22 mai 2009, 18:41

Sans code, dur de voir ce qui ne va pas :wink:

je doute en tout cas que mt_rand() soit la cause de ton souci.

Eléphant du PHP | 113 Messages

25 mai 2009, 09:45

oki autant pour moi, il y avait effectivement un soucis dans mon code. Désolé pour le dérangement :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

25 mai 2009, 09:51

Si tu avais pu nous montrer l'erreur et comment tu l'as résolu, je suis sûr que ça aurait pu arranger un futur lecteur de ce post ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer