Construye un nuevo motor PCG Oneseq 128 XSL RR 64

# Random\Engine\PcgOneseq128XslRr64::__construct

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__construct — Construye un nuevo motor PCG Oneseq 128 XSL RR 64

### Descripción

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

### Parámetros

`seed`

  La forma en que se inicializa el estado interno de 128 bits (16 bytes) que consiste en un entero sin signo de 128 bits depende del tipo utilizado como `seed`.

  Tipo | Descripción
  --- | ---
  null | Rellena el estado con 16 bytes aleatorios generados usando el CSPRNG.
  int | Rellena el estado estableciendo el estado a `0`, avanzando el motor un paso, añadiendo el valor de `seed` interpretado como un entero sin signo de 64 bits, y avanzando el motor otro paso.
  string | Rellena el estado interpretando un string de 16 bytes como un entero sin signo de 128 bits en orden little-endian.

### Errores/Excepciones

- Si la longitud de un string `seed` no es de 16 bytes, se lanzará un ValueError.

### Ejemplos

Ejemplo #1 Ejemplo de Random\Engine\PcgOneseq128XslRr64::__construct()

    <?php
    // Usa una semilla aleatoria de 128 bits.
    $e = new \Random\Engine\PcgOneseq128XslRr64();

    $r = new \Random\Randomizer($e);
    ?>

Ejemplo #2 Derivar una semilla a partir de un string

    <?php
    $string = "Mi semilla de string";

    // Aplica hash a la cadena con SHA-256 truncado usando salida binaria
    // para convertir el $string en una semilla de 128 bits. Usar la misma
    // cadena resultará en la misma secuencia de aleatoriedad.
    $e = new \Random\Engine\PcgOneseq128XslRr64(
        substr(hash('sha256', $string, binary: true), 0, 16)
    );

    echo bin2hex($e->generate()), "\n";
    ?>

El ejemplo anterior mostrará:

    8333ef59315b16d8

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