srand

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

srand - Задає початкове число генератора псевдовипадкових чисел

Опис

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

Встановлює початкове число генератора випадкових чисел рівним seedили случайному числу, если значение параметраseed одно

Зауваження: Немає необхідності ініціалізувати генератор випадкових чисел функціями **srand()**илиmt_srand()оскільки це відбувається автоматично.

Застереження

Оскільки механізм Mt19937 ("Mersenne Twister") приймає як значення лише одне 32-бітове ціле число, кількість можливих випадкових послідовностей обмежена всього 232 (тобто 4294967296), незважаючи на величезний період Mt19937, рівний 219937-1.

Якщо покладатися на неявне або явне випадкове значення, дублікати з'являться набагато раніше. Дубльовані значення очікуються з 50% ймовірністю після менш ніж 80 000 випадково згенерованих значень відповідно до проблеми дня народження. Імовірність дублювання значень становить 10% після випадкової генерації приблизно 30000 значень.

Це робить 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.0srand()стала синонімом функції mt_srand()

Дивіться також

  • rand() - Генерує випадкове число
  • getrandmax() - Повертає максимально можливе випадкове число
  • mt_srand() - Ініціалізує генератор випадкових чисел на базі Вихря Мерсенна