(PHP 4, PHP 5, PHP 7, PHP 8)
mt_srand — Инициализирует генератор случайных чисел на базе Вихря Мерсе́нна
Запускает генератор случайных чисел значением параметра seed
или случайным числом, если параметр seed
не задан.
Замечание: Нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку это происходит автоматически.
Поскольку механизм Mt19937 ("Mersenne Twister") принимает в качестве значения только одно 32-битное целое число, количество возможных случайных последовательностей ограничено всего 232 (то есть 4 294 967 296), несмотря на огромный период Mt19937, равный 219937-1.
Если полагаться на неявное или явное случайное значение, дубликаты появятся гораздо раньше. Дублированные значения ожидаются с 50% вероятностью после менее чем 80 000 случайно сгенерированных значений в соответствии с проблемой дня рождения. Вероятность дублирования значений составляет 10% после случайной генерации примерно 30 000 значений.
Это делает Mt19937 непригодным для применения в тех случаях, когда дублирование последовательностей не должно происходить с более чем ничтожной вероятностью. Если требуется воспроизводимое значение, то движки Random\Engine\Xoshiro256StarStar и Random\Engine\PcgOneseq128XslRr64 поддерживают гораздо большие значения, которые вряд ли столкнутся случайно. Если воспроизводимость не требуется, механизм Random\Engine\Secure обеспечивает криптографически безопасную случайную последовательность.
seed
Заполняет состояние значениями, сгенерированными линейным конгруэнтным генератором,
которые были инициализированы значением параметра seed
,
интерпретированным как 32-битное целое беззнаковое число.
Если параметр seed
не был задан или равен null
,
будет использовано случайное беззнаковое 32-битное число.
mode
Одна из следующих констант задаёт алгоритм генерации.
MT_RAND_MT19937
:
Корректная реализация Mt19937, доступна с PHP 7.1.0.
MT_RAND_PHP
Использует некорректную реализацию Mersenne Twister, которая использовалась по умолчанию до версии PHP 7.1.0.
Этот режим доступен для обратной совместимости.
Функциональность УСТАРЕЛА с PHP 8.3.0. Пользоваться функциональностью настоятельно не рекомендуют.
Функция не возвращает значения после выполнения.
Версия | Описание |
---|---|
8.3.0 |
Теперь параметр seed может принимать значение null .
|
7.1.0 | Теперь функция srand() — псевдоним функции mt_srand(). |
7.1.0 |
Функция mt_rand()
была обновлена,
чтобы использовать фиксированную, корректную версию алгоритма Вихря Мерсенна.
Чтобы вернуться к старому поведению,
функцию mt_srand() вызывают, передавая
во второй параметр константу MT_RAND_PHP .
|