(PHP 4, PHP 5, PHP 7)
mt_srand — Переинициализирует генератор случайных чисел на базе Вихря Мерсенна
$seed
[, int $mode
= MT_RAND_MT19937
]] ) : void
Переинициализирует генератор случайных чисел параметром
seed
или случайным числом, если
seed
не указан.
Замечание: Нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку это происходит автоматически.
seed
Необязательное целочисленное (integer) значение параметра переинициализации
mode
Используйте одну из следующих констант для изменения реализации генератора.
Константа | Описание |
---|---|
MT_RAND_MT19937 |
Использовать корректную реализацию генератора на базе Вихря Мерсенна. Доступно с PHP 7.1.0. |
MT_RAND_PHP |
Использовать некорректную реализацию генератора на базе Вихря Мерсенна, которая использовалась до PHP 7.1.0. Эта опция присутствует только для обеспечения обратной совместимости. |
Эта функция не возвращает значения после выполнения.
Версия | Описание |
---|---|
7.1.0 | srand() теперь является псевдонимом для mt_srand(). |
7.1.0 |
mt_rand() была изменена для использования фиксированной, корректной версии
алгоритма Вихря Мерсенна. Для отката к старому поведению, используйте
mt_srand() со вторым параметром
MT_RAND_PHP .
|
5.2.1 | Реализация Вихря Мерсенна (Mersenne Twister) в PHP теперь использует новый алгоритм переинициализации, разработанный Ричардом Вагнером (Richard Wagner). При том же параметре последовательность значений будет отличатся от последовательности, сгенерированной в предыдущих версиях PHP. (Ранее при одинаковых параметрах последовательность была одинаковой). Это поведение более не планируется изменять, но тем не менее, полагаться на это небезопасно. |
Пример #1 Пример использования mt_srand()
<?php
// инициализация текущими микросекундами
function make_seed()
{
list($usec, $sec) = explode(' ', microtime());
return $sec + $usec * 1000000;
}
mt_srand(make_seed());
$randval = mt_rand();
?>