srand toch nog steeds nodig?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

UltimateWeapon

UltimateWeapon

31/10/2009 19:34:00
Quote Anchor link
Op de PHP website: http://php.net/manual/en/function.srand.php
staat er te lezen:

"Note: As of PHP 4.2.0, there is no need to seed the random number generator with srand() or mt_srand() as this is now done automatically."

Ik weet dit al een tijdje en gebruik dus al lange tijd geen srand() meer,
maar nu heb ik zonet een test aan het runnen geweest waarbij ik volgende resultaten krijg:

000100111110000110001111000

(waarbij elk getal staat voor 1 keer random genereren, waarbij er ofwel 0, ofwel 1 wordt gegenereerd )

Er zijn veel seqeunties te zien van heel de tijd hetzelfde getal, terwijl volgens de kansen het eerder naar de buurt van 010101010101 zou moeten neigen.

Is dit nu toeval?

Of is die "automatische seed" echt niet zo interessant en moet je dus toch nog altijd een srand gebruiken zoals:
srand((double)microtime()*1000000);

Iemand die hier wat meer van kent?
 
PHP hulp

PHP hulp

22/02/2025 17:42:14
 
- SanThe -

- SanThe -

31/10/2009 19:42:00
Quote Anchor link
Test het eens uit.
 
UltimateWeapon

UltimateWeapon

31/10/2009 19:48:00
Quote Anchor link
Als je het uittest dan krijg je 50 % keer 0 en 50 % keer 1 terug, wat logisch is.
Maar dan ben ik nog niet veel mee, als je zoiets echt wil uittesten dan moet je er statistische theoriejen op gaan lanceren die uitrekend of de afwijking een normale of een abnormale afwijking is.

Maar zoveel kennis heb ik echt niet om zo maar eens "uit te testen". Daarom dat ik op zoek ben naar een antwoord van iemand die echt meer weet over de technische aspecten van dit probleempje, misschien ook gewoon door ervaring :-)
 

31/10/2009 19:53:00
Quote Anchor link
Het is inderdaad niet random. Ik geloof dat het op tijd gebaseerd is, wat weer een bepaalde logica heeft hé. Dat zorgt er dus voor dat het niet random is. Lees ook dit en dit.
Edit: My bad, mt_rand is wel random.
Gewijzigd op 01/01/1970 01:00:00 door
 
UltimateWeapon

UltimateWeapon

31/10/2009 20:12:00
Quote Anchor link
bedankt voor de info Karl,
ik zal de rand() function gebruiken en de seed
srand((double)microtime()*1000000);

Daar zal ik het voorlopig mee moeten doen.
Gewijzigd op 01/01/1970 01:00:00 door UltimateWeapon
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.