mt_srand

(PHP 4, PHP 5, PHP 7)

mt_srandInitialisiert den Mersenne Twister Zufallszahlengenerator

Beschreibung

mt_srand ([ int $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.

Parameter-Liste

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.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Changelog

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.

Beispiele

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();
?>

Siehe auch

  • mt_rand() - Erzeugt eine Zufallszahl nach dem Mersenne Twister Verfahren
  • mt_getrandmax() - Zeigt den größtmöglichen Zufallswert an
  • srand() - Anfangswert für Zufallsgenerator festlegen

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top