Beste mensen,

Als ik een getal tussen 0 en 100 heb (bijv. 35)
Hoe kan ik er dan voor zorgen dat een bepaalde code dan met 35% kans wordt uitgevoerd. Ik heb er nu al een hele tijd naar zitten zoeken maar ik kan het echt niet vinden.

BVD
// Oh, SanThe heeft al een oplossing ;-).
<?php
if(rand(1, 100) <= 35)
{
// 35% kans dat ie hier komt
}
?>
Als je het echt random wilt maken, zou ik voor [php]mt_rand[/php] gaan.
De 'random' getallen die PHP genereerd zijn niet 100% random ;)
Ik heb deze code 10000 keer laten uitvoeren en kwam aan een kansenpercentage van 35.62%

Lijkt mij random genoeg in ieder geval.

De vraag is nu of de TS dit ook vind?
Tommy schreef op 10.01.2009 18:55
De 'random' getallen die PHP genereerd zijn niet 100% random ;)


Waarom niet?
yorick17 schreef op 10.01.2009 19:23
[quote='Tommy schreef op 10.01.2009 18:55']De 'random' getallen die PHP genereerd zijn niet 100% random ;)


Waarom niet?[/quote]

Idk, er staat ook bij mt_rand() generated a better random integer. Het is gewoon zo, ik weet zelfs niet eens of alle integers door een electronisch systeem gegenereerd wel echt random zijn.
Het verschil tussen rand en mt_rand is dat mt 4 keer sneller is, maar dat heeft niets met de getallen te maken die worden gegenereerd. Ze komen allebij van de processor
Een random generator is altijd via een vast algoritme getallen aan het "verzinnen". Seeden is daarom belangrijk.

Reageren