Versio

rand() versus mt_rand()

Overzicht Reageren

PHP erik

PHP erik

28/03/2006 22:55:00
Quote Anchor link
Waarom wordt mt_rand() aangeraden? Uit eigen testen blijkt deze helemaal niet nauwkeuriger te zijn, en ook niet sneller.

Heeft iemand meer informatie?


TESTRESULTATEN RAND(0,1000) EN MT_RAND(0,1000)

rand1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
COUNT(getal) = 1000000
SUM(getal) = 499990516
AVG(getal) = 499.9905

Verschil totaal = 0.0095
Verschil procentueel = 0.0019%



rand2
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
COUNT(getal) = 1000000
SUM(getal) = 499965465
AVG(getal) = 499.9655

Verschil totaal = 0.0345
Verschil procentueel = 0.0069%



rand3
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
COUNT(getal) = 1000000
SUM(getal) = 499953378
AVG(getal) = 499.9534

Verschil totaal = 0.0466
Verschil procentueel = 0.00932%



mtrand1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
COUNT(getal) = 1000000
SUM(getal) = 499945223
AVG(getal) = 499.9452

Verschil totaal = 0.0548
Verschil procentueel = 0.01096%



mtrand2
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
COUNT(getal) = 1000000
SUM(getal) = 499684557
AVG(getal) = 499.6846

Verschil totaal = 0.3154
Verschil procentueel = 0.06308%



mtrand3
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
COUNT(getal) = 1000000
SUM(getal) = 499999440
AVG(getal) = 499.9994

Verschil totaal = 0.00060000000002
Verschil procentueel = 0.000120000000004%



FORLOOP VAN 1 TOT 100,000,000
forloop rand( "int(12)" ) - 136 sec
forloop mt_rand( "int(12)" ) - 137 sec
Gewijzigd op 28/03/2006 22:55:00 door PHP erik
 
PHP hulp

PHP hulp

25/05/2012 14:00:23
Gesponsorde koppelingen:
 
Jelmer rrrr

Jelmer rrrr

28/03/2006 22:57:00
Quote Anchor link
PHPerik:
Waarom wordt mt_rand() aangeraden? Uit eigen testen blijkt deze helemaal niet nauwkeuriger te zijn, en ook niet sneller.


Is dat niet juist goed voor de onvoorspelbaarheid? Als je het zo ziet zijn de functies eigenlijk voorspelbaar, zie de uitkomst van array_sum().
Gewijzigd op 28/03/2006 22:58:00 door Jelmer rrrr
 
Kalle P

Kalle P

28/03/2006 23:02:00
Quote Anchor link
Hebben we het weer over de grote 0?
 
PHP erik

PHP erik

28/03/2006 23:02:00
Quote Anchor link
Ik zeg niet dat het erg is. Maar je moet bedenken dat hoe dichter het bij het theoretische ligt, hoe onvoorspelbaarder ze zijn.

Ik snap alleen niet waarom php.net beweerd dat je mt_rand() beter kunt gebruiken. Dat is echt uit de duim gezogen.
 



Overzicht Reageren