srand

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

srandЗадаёт начальное число генератора псевдослучайных чисел

Описание

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

Устанавливает начальное число генератора случайных чисел равным seed или случайному числу, если значение параметра seed равно 0.

Замечание: Нет необходимости инициализировать генератор случайных чисел функциями 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 обеспечивает криптографически безопасную случайную последовательность.

Замечание: Начиная с PHP 7.1.0 функция srand() стала синонимом функции mt_srand().

Список параметров

seed

Заполняет состояние значениями, сгенерированными линейным конгруэнтным генератором, которые были инициализированы значением параметра seed, интерпретированным как 32-битное целое беззнаковое число.

Если параметр seed не был задан или равен null, будет использовано случайное беззнаковое 32-битное число.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Список изменений

Версия Описание
8.3.0 Теперь параметр seed может принимать значение null.
7.1.0 srand() стала синонимом функции mt_srand().

Смотрите также

  • rand() - Генерирует случайное число
  • getrandmax() - Возвращает максимально возможное случайное число
  • mt_srand() - Инициализирует генератор случайных чисел на базе Вихря Мерсе́нна