Создаёт новый движок PCG Oneseq 128 XSL RR 64

# Random\Engine\PcgOneseq128XslRr64::__construct

(PHP 8 >= 8.2.0)

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

### Описание

public function 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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open