Seeds the Mersenne Twister Random Number Generator (original) (raw)
mt_srand
(PHP 4, PHP 5, PHP 7)
mt_srand — Seeds the Mersenne Twister Random Number Generator
Description
mt_srand ([ int $seed
[, int $mode
= MT_RAND_MT19937 ]] ) : void
Note: There is no need to seed the random number generator with srand() ormt_srand() as this is done automatically.
Parameters
seed
An arbitrary integer seed value.
mode
Use one of the following constants to specify the implementation of the algorithm to use.
Constant | Description |
---|---|
MT_RAND_MT19937 | Uses the fixed, correct, Mersenne Twister implementation, available as of PHP 7.1.0. |
MT_RAND_PHP | Uses an incorrect Mersenne Twister implementation which was used as the default up till PHP 7.1.0. This mode is available for backward compatibility. |
Return Values
No value is returned.
Changelog
Version | Description |
---|---|
7.1.0 | srand() has been made an alias of mt_srand(). |
7.1.0 | mt_rand() has been updated to use the fixed, correct, version of the Mersenne Twister algorithm. To fall back to the old behaviour, use mt_srand() with MT_RAND_PHP as the second parameter. |
5.2.1 | The Mersenne Twister implementation in PHP now uses a new seeding algorithm by Richard Wagner. Identical seeds no longer produce the same sequence of values they did in previous versions. This behavior is not expected to change again, but it is considered unsafe to rely upon it nonetheless. |
Examples
Example #1 mt_srand() example
<?php // seed with microseconds function make_seed() { list($usec, $sec) = explode(' ', microtime()); return <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>s</mi><mi>e</mi><mi>c</mi><mo>+</mo></mrow><annotation encoding="application/x-tex">sec + </annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6667em;vertical-align:-0.0833em;"></span><span class="mord mathnormal">sec</span><span class="mord">+</span></span></span></span>usec * 1000000; } mt_srand(make_seed()); $randval = mt_rand(); ?>
See Also
- mt_rand() - Generate a random value via the Mersenne Twister Random Number Generator
- mt_getrandmax() - Show largest possible random value
- srand() - Seed the random number generator