Beschreibung
int
mt_rand ( [ int min [, int max]])
Die PHP rand() Funktion benutzt den in der
jeweiligen libc enthaltenen Zufallsgenerator. Gerade in älteren
libc-Versionen ist dieser aber oft langsam und die Qualität der
erzeugten Pseudozufalls-Sequenzen ist unbefriedigend bis
unbekannt.
Die Funktion mt_rand() bietet einen Drop-In
Ersatz für die von der libc bereitgestellten Funktionen. Sie
benutzt einen Zufallsgenerator mit bekannter Characteristik, den
sogenannten "Mersenne Twister", der Pseudozufalls-Sequenzen
generiert, die auch kryptografischen Ansprüchen genügen sollten
und viermal so schnell arbeitet wie der typische
libc-Algorithmus.
Weitere Informationen zum Mersenne Twister und zur optimierten
Implementation finden sich unter http://www.math.keio.ac.jp/~matumoto/emt.html und http://www.scp.syr.edu/~marc/hawk/twister.html.
Ohne die optionalen Parameter min und
max liefert mt_rand()
eine Pseudo-Zufallszahl zwischen 0 und einem plattformabhängigen
Maximalwert, der mit mt_getrandmax() ermittelt
werden kann.
Benutzen Sie unbedingt mt_srand(), um vor dem
ersten Aufruf von mt_rand() einen neuen
Startwert festzulegen, ansonsten erhalten Sie bei jedem
Programmlauf dieselbe Sequenz von Werten.
Anmerkung:
In PHP-Versionen vor 3.0.7 hatte der zweite Parameter
max nicht den Maximalwert sondern die
Größe des Werteintervalls an, d.h. in diesen älteren Version muss
statt mt_rand(min,max) mt_rand(min,max-min)
benutzt werden, um dasselbe Ergebnis zu erhalten.
Siehe auch mt_srand(),
mt_getrandmax(), srand(),
rand() und getrandmax().