The seed is the PID + LCG (https://github.com/php/php-src/search?q=GENERATE_SEED&unscoped_q=GENERATE_SEED)(PHP 4, PHP 5, PHP 7, PHP 8)
mt_rand â Erzeugt eine Zufallszahl nach dem Mersenne-Twister-Verfahren
Viele Zufallszahlengeneratoren, die auf Ă€lteren libc-Versionen basieren, haben seltsame oder doch zumindest unerwartete Verhaltensweisen und sind zudem recht langsam. Die Funktion mt_rand() ist ein vollwertiger Ersatz fĂŒr das Ă€ltere rand(). Sie verwendet einen Zufallszahlengenerator mit den bekannten Charakteristika des » Mersenne Twisters, der Zufallszahlen viermal schneller generiert als der durchschnittliche libc-rand()-Aufruf.
Wenn die Funktion ohne Angabe von min und/oder
max aufgerufen wird, gibt
mt_rand() eine Pseudozufallszahl zwischen 0 und
mt_getrandmax() zurĂŒck. Wenn zum Beispiel eine
Zufallszahl zwischen 5 und 15 (inklusive) benötigt wird, muss
mt_rand(5, 15) verwendet werden.
Diese Funktion erzeugt keine kryptografisch sicheren Werte und darf nicht fĂŒr kryptografische Zwecke verwendet werden oder fĂŒr Zwecke, bei denen die zurĂŒckgegebenen Werte nicht abschĂ€tzbar sein dĂŒrfen.
Falls kryptographisch sichere Zufallszahlen benötigt werden, kann der Random\Randomizer mit der Random\Engine\Secure-Engine verwendet werden. FĂŒr einfache AnwendungsfĂ€lle bieten die Funktionen random_int() und random_bytes() eine bequeme und sichere API, die den CSPRNG des Betriebssystems verwendet.
This function uses the global Mt19937 (âMersenne Twisterâ) instance as the source of randomness and thus shares its state with all other functions using the global Mt19937. Using any of these functions advances the sequence for all the other functions, regardless of scope.
Generating repeatable sequences by seeding mt_srand() or srand() with a known value will also yield repeatable output from this function.
Prefer using Random\Randomizer methods in all newly written code.
minDer optionale niedrigste Wert, der zurĂŒckgegeben werden kann (Standardwert: 0)
maxDer optionale höchste Wert, der zurĂŒckgegeben werden kann (Standardwert: mt_getrandmax())
Ein zufÀlliger Integerwert zwischen min (oder 0) und
max (oder mt_getrandmax(),
inklusive).
max kleiner ist als min,
wird ein ValueError ausgelöst.
| Version | Beschreibung |
|---|---|
| 8.0.0 |
Wenn max kleiner ist als
min, wird ein ValueError
ausgelöst, wenn max kleiner ist als
min; zuvor wurde ein E_WARNING
erzeugt, und die Funktion gab false zurĂŒck.
|
| 7.2.0 | mt_rand() erhielt einen Bugfix fĂŒr einen Modulus-Verzerrungsfehler. Das bedeutet, dass sich Folgen mit einem bestimmten Startwert ab PHP 7.1 auf 64bit-Rechnern unterscheiden können. |
| 7.1.0 | rand() ist nun ein Alias von mt_rand(). |
| 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.
|
Beispiel #1 mt_rand()-Beispiel
<?php
echo mt_rand(), "\n";
echo mt_rand(), "\n";
echo mt_rand(5, 15), "\n";
?>Das oben gezeigte Beispiel erzeugt eine Àhnliche Ausgabe wie:
1604716014 1478613278 6
Der Bereich von min und max
darf nicht gröĂer sein als mt_getrandmax(). Das heiĂt,
(max - min) <=
mt_getrandmax(). Andernfalls kann
mt_rand() schlechtere Zufallszahlen liefern als es
sollte.
The seed is the PID + LCG (https://github.com/php/php-src/search?q=GENERATE_SEED&unscoped_q=GENERATE_SEED)