Page 1 sur 1

mt_rand pas aléatoire??

Posté : 20 mai 2009, 10:43
par Wells83
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

Posté : 20 mai 2009, 11:11
par Berzemus
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.

Posté : 22 mai 2009, 13:05
par Lirio
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 :?:

Posté : 22 mai 2009, 18:41
par Sékiltoyai
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.

Posté : 25 mai 2009, 09:45
par Wells83
oki autant pour moi, il y avait effectivement un soucis dans mon code. Désolé pour le dérangement :)

Posté : 25 mai 2009, 09:51
par zeus
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 ;)