srand

(PHP 4, PHP 5, PHP 7, PHP 8)

srandLegt den Anfangswert für den Zufallsgenerator fest

Beschreibung

srand(int$seed = 0, int$mode = MT_RAND_MT19937): void

Setzt den Anfangswert für den Zufallsgenerator auf seed oder auf einen zufälligen Wert, falls seed0 ist.

Hinweis: Es besteht keine Notwendigkeit, den Zufallsgenerator für Zahlen mit srand() oder mt_srand() zu füttern, das geschieht automatisch.

Achtung

Da die Mt19937- ("Mersenne Twister") Engine nur einen einzigen 32-Bit-Integer als Seed akzeptiert, ist die Anzahl der möglichen Zufallsfolgen trotz der riesigen Periode von 219937-1 auf nur 232 (d. h. 4.294.967.296) begrenzt.

Wenn man sich auf implizites oder explizites zufälliges Seeding verlässt, treten Duplikate viel früher auf. Nach dem Geburtstagsproblem werden doppelte Seeds mit einer Wahrscheinlichkeit von 50% nach weniger als 80.000 zufällig erzeugten Seeds erwartet. Nach etwa 30.000 zufällig erzeugten Seeds tritt ein doppeltes Seed mit einer Wahrscheinlichkeit von 10% auf.

Daher ist Mt19937 nicht für Anwendungen geeignet, bei denen doppelte Sequenzen nur mit vernachlässigbarer Wahrscheinlichkeit auftreten dürfen. Wenn reproduzierbares Seeding erforderlich ist, unterstützen sowohl Random\Engine\Xoshiro256StarStar als auch Random\Engine\PcgOneseq128XslRr64 wesentlich größere Seeds, bei denen eine zufällige Kollision unwahrscheinlich ist. Wenn keine Reproduzierbarkeit erforderlich ist, bietet die Engine Random\Engine\Secure eine kryptografisch sichere Zufallsverteilung.

Hinweis: Von PHP 7.1.0 an ist srand() ein Alias von mt_srand().

Parameter-Liste

seed

Füllt den Zustand mit Werten, die mit einem linearen Kongruenzgenerator erzeugt wurden, der mit seed, interpretiert als vorzeichenlose 32-Bit-Ganzzahl, initialisiert wurde.

Wenn seed weggelassen wird oder null ist, wird eine zufällige vorzeichenlose 32-Bit-Ganzzahl verwendet.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

VersionBeschreibung
8.3.0seed kann nun null sein.
7.1.0srand()ist nun ein Alias von mt_srand().

Siehe auch

  • rand() - Erzeugt eine zufällige Zahl
  • getrandmax() - Liefert die größtmögliche Zufallszahl
  • mt_srand() - Initialisiert den Mersenne-Twister-Zufallszahlengenerator
To Top