srand

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

srandSeed the random number generator

Опис

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

Seeds the random number generator with seed or with a random value if seed is 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, який надає криптографічно безпечну випадковість.

Зауваження: As of PHP 7.1.0, srand() has been made an alias of mt_srand().

Параметри

seed

Fills the state with values generated with a linear congruential generator that was seeded with seed interpreted as an unsigned 32 bit integer.

If seed is omitted or null, a random unsigned 32-bit integer will be used.

Значення, що повертаються

Не повертає значень.

Журнал змін

Версія Опис
8.3.0 seed is now nullable.
7.1.0 srand() has been made an alias of mt_srand().

Прогляньте також

  • rand() - Generate a random integer
  • getrandmax() - Show largest possible random value
  • mt_srand() - Seeds the Mersenne Twister Random Number Generator