Random\Engine\PcgOneseq128XslRr64::__construct

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__constructСоздаёт новый движок PCG Oneseq 128 XSL RR 64

Описание

public Random\Engine\PcgOneseq128XslRr64::__construct(string|int|null $seed = null)

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

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
Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top