Random\Engine\Mt19937::__construct

(PHP 8 >= 8.2.0)

Random\Engine\Mt19937::__construct — Створює новий об'єкт двигуна Mt19937

Опис

public Random\Engine\Mt19937::__construct(?int$seed null, int$mode MT_RAND_MT19937) .

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

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

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

Це робить Mt19937 непридатним для застосування у тих випадках, коли дублювання послідовностей не повинно відбуватися з більш ніж нікчемною ймовірністю. Якщо потрібно відтворюване значення, то двигуни Random\Engine\Xoshiro256StarStar і Random\Engine\PcgOneseq128XslRr64 підтримують набагато більші значення, які навряд чи зіткнуться випадково. Якщо відтворюваність не потрібна, механізм Random\Engine\Secure забезпечує криптографічно безпечну випадкову послідовність.

Увага

Функція поки що не документована; для знайомства доступний лише перелік аргументів.

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

seed

Заповнює стан значеннями, згенерованими лінійним генератором конгруентним, який був заповнений параметром seed, що інтерпретується як 32-бітове ціле число без знака.

Якщо параметр seedопущен или**null**буде використано випадкове 32-бітове ціле число без знака.

mode

Використовуйте одну з наступних констант, щоб вказати реалізацію алгоритму.

  • MT_RAND_MT19937: Коректна реалізація Mt19937.
  • MT_RAND_PHP: Некоректна реалізація для зворотної сумісності з функцієюmt_srand() до версії PHP 7.1.0.

Увага

Ця функціональність оголошена застарілої починаючи з PHP 8.3.0 і її украй не рекомендується використовувати.

Приклади

Приклад #1 Приклад використання Random\Engine\Mt19937::__construct()****

Loading...