array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.srand.php', 1 => 'srand', ), 'up' => array ( 0 => 'ref.random.php', 1 => 'Функции Random', ), 'prev' => array ( 0 => 'function.random-int.php', 1 => 'random_int', ), 'next' => array ( 0 => 'class.random-randomizer.php', 1 => 'Random\\Randomizer', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/random/functions/srand.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
srand — Задаёт начальное число генератора псевдослучайных чисел
Устанавливает начальное число генератора случайных чисел равным 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(). |