(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) как little-endian 128-битное целое число без знака. |
seed
не равна 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