(PHP 4, PHP 5, PHP 7)
mt_srand — Initialisiert den Mersenne Twister Zufallszahlengenerator
$seed
[, int $mode
= MT_RAND_MT19937
]] ) : void
Setzt den Zufallszahlengenerator mit seed
oder mit
einem Zufallswert, wenn seed
nicht angegeben ist.
Hinweis: Es besteht keine Notwendigkeit, den Zufallsgenerator für Zahlen mit srand() oder mt_srand() zu füttern, das geschieht automatisch.
seed
Ein beliebiger integer Startwert.
mode
Eine der folgenden Konstanten kann verwendet werden, um die Implementierung des zu verwendenden Algorithmus zu bestimmen.
Constant | Beschreibung |
---|---|
MT_RAND_MT19937 |
Verwendet die korrekte Mersenne Twister Implementierung, die von PHP 7.1.0 an verfügbar ist. |
MT_RAND_PHP |
Verwendet eine inkorrekte Mersenne Twister Implementierung, die vor PHP 7.1.0 standardmäßig verwendet wurde. Dieser Modus ist aus Gründen der Abwärtskompatibilität verfügbar. |
Es wird kein Wert zurückgegeben.
Version | Beschreibung |
---|---|
7.1.0 | srand() ist nun ein Alias von mt_srand(). |
7.1.0 |
mt_rand()
verwendet nun eine korrekte Version des Mersenne Twister
Algorithmus. Um auf das vorherige Verhalten auszuweichen, kann
mt_srand() mit MT_RAND_PHP als
zweitem Parameter verwendet werden.
|
Seit 5.2.1 | Die Mersenne-Twister-Implementation in PHP verwendet jetzt einen neuen Seeding-Algorithmus von Richard Wagner. Identische Seeds erzeugen nicht länger dieselbe Sequenz von Werten, die in früheren Versionen erzeugt wurde. Es ist nicht abzusehen, dass eine solche Änderung noch einmal nötig wird, bedingungslos darauf vertrauen sollte man aber nicht. |
Beispiel #1 mt_srand()-Beispiel
<?php
// seed mit Mikrosekunden
function make_seed()
{
list($usec, $sec) = explode(' ', microtime());
return $sec + $usec * 1000000;
}
mt_srand(make_seed());
$randval = mt_rand();
?>