mt_rand

mt_rand -- Erzeugt 'bessere' Zufallszahlen

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 ?? ? .

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( ) .