Mt19937Engine
in package
implements
SeedableInterface
Детерминированный движок псевдослучайности MT19937 (Mersenne Twister).
Каноничная 32-битная реализация Мацумото—Нисимуры с СОБСТВЕННЫМ состоянием
на каждый экземпляр: два независимых движка с разными зёрнами не влияют друг
на друга (в отличие от глобального mt_rand()). Умножение при инициализации
маскируется & 0xFFFFFFFF, поэтому на 64-битном PHP переполнения в float не
происходит, а последовательность идентична на версиях 8.1–8.5.
Движок — чистый поставщик битов: он выдаёт сырое 32-битное слово, а логика диапазонов и распределений живёт в Randomizer.
Table of Contents
Interfaces
- SeedableInterface
- Движок, состояние которого можно детерминированно инициализировать зерном.
Methods
- __construct() : mixed
- nextUint32() : int
- Вернуть очередное закалённое (tempered) 32-битное слово в [0, 2^32 − 1].
- seed() : void
- Переинициализировать состояние движка зерном (init_genrand).
Methods
__construct()
public
__construct([int $seed = 0 ]) : mixed
Parameters
- $seed : int = 0
-
зерно начальной инициализации
nextUint32()
Вернуть очередное закалённое (tempered) 32-битное слово в [0, 2^32 − 1].
public
nextUint32() : int
Attributes
- #[Override]
Return values
int —неотрицательное 32-битное слово
seed()
Переинициализировать состояние движка зерном (init_genrand).
public
seed(int $seed) : void
Parameters
- $seed : int
-
зерно последовательности
Attributes
- #[Override]