(PHP 8 >= 8.2.0)
Random\Engine\Xoshiro256StarStar::__construct — Создаёт новый объект движка xoshiro256**
Функцию пока не задокументировали; для знакомства доступен только список аргументов.
seed
Способ заполнения внутреннего 256-битного (32 байта) состояния, состоящего из четырёх
64-битных целых чисел без знака, зависит от типа,
используемого в качестве параметра seed
.
Type | Описание |
---|---|
null | Заполняет состояние 32 случайными байтами, сгенерированными с помощью CSPRNG. |
int |
Заполняет состояние четырьмя последовательными значениями, сгенерированными с помощью алгоритма
SplitMix64, который был заполнен параметром seed ,
интерпретированным как 64-битное целое число без знака.
|
string | Заполняет состояние, интерпретируя 32-байтовую строку (string) как четыре 64-битных целых числа без знака. |
seed
не равна 32 байтам, будет выброшена ошибка ValueError.
seed
состоит из 32 нулевых байтов ("\x00"
),
будет выброшена ошибка ValueError.
Пример #1 Пример использования Random\Engine\Xoshiro256StarStar::__construct()
<?php
// Использование случайного 256-битного значения.
$e = new \Random\Engine\Xoshiro256StarStar();
$r = new \Random\Randomizer($e);
?>
Пример #2 Выведение значения из строки (string)
<?php
$string = "My string seed";
// Хеширование строки с помощью SHA-256, используя двоичный вывод, чтобы превратить
// $string в 256-битное значение. Использование одной и той же строки приведёт
// к одной и той же последовательности случайностей.
$e = new \Random\Engine\Xoshiro256StarStar(
hash('sha256', $string, binary: true)
);
echo bin2hex($e->generate()), "\n";
?>
Результат выполнения приведённого примера:
6e013453678388c2