(PHP 8 >= 8.2.0)
Random\Engine\PcgOneseq128XslRr64::__construct — Создаёт новый движок PCG Oneseq 128 XSL RR 64
seed
Способ наполнения внутреннего 128-битного (16-байтного) состояния,
которое состоит из одного 128-битного целого числа без знака, зависит от типа
в параметре seed
.
Тип | Описание |
---|---|
null | Заполняет состояние 16 случайными байтами, которые выдал генератор CSPRNG. |
int |
Заполняет состояние, устанавливая состояние в 0 ,
продвигая движок на один шаг, добавляя значение параметра seed ,
интерпретируемое как 64-битное целое число без знака, и продвигая движок ещё на один шаг.
|
string | Заполняет состояние, интерпретируя 16-байтовую строку (string) как 128-битное целое число без знака с порядком байтов от младшего к старшему. |
seed
значения string, длина которого не равна 16 байтам,
метод выбросит ошибку ValueError.
Пример #1 Пример работы метода Random\Engine\PcgOneseq128XslRr64::__construct()
<?php
// Используется случайное 128-битное начальное число
$e = new \Random\Engine\PcgOneseq128XslRr64();
$r = new \Random\Randomizer($e);
?>
Пример #2 Выведение значения из строки (string)
<?php
$string = "My string seed";
// Хеширование строки усечённым SHA-256, используя двоичный вывод,
// чтобы превратить значение переменной $string в 128-битное значение. Передача одной и той же
// строки вернёт одну и ту же случайную последовательность
$e = new \Random\Engine\PcgOneseq128XslRr64(
substr(hash('sha256', $string, binary: true), 0, 16)
);
echo bin2hex($e->generate()), "\n";
?>
Результат выполнения приведённого примера:
8333ef59315b16d8