Crea un nuevo motor xoshiro256**

# Random\Engine\Xoshiro256StarStar::__construct

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::__construct — Crea un nuevo motor xoshiro256**

### Descripción

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

### Parámetros

`seed`

  Cómo se inicializa el estado interno de 256 bits (32 bytes) compuesto por cuatro enteros sin signo de 64 bits depende del tipo utilizado como `seed`.

  Tipo | Descripción
  --- | ---
  null | Rellena el estado con 32 bytes aleatorios generados usando el CSPRNG.
  int | Rellena el estado con cuatro valores consecutivos generados con el algoritmo SplitMix64 que se inicializó con `seed` interpretado como un entero sin signo de 64 bits.
  string | Rellena el estado interpretando un string de 32 bytes como cuatro enteros sin signo de 64 bits en little-endian.

### Errores/Excepciones

- Si la longitud de un string `seed` no es de 32 bytes, se lanzará un ValueError.
- Si un string `seed` consiste en 32 bytes NUL (`"\x00"`), se lanzará un ValueError.

### Ejemplos

Ejemplo #1 Random\Engine\Xoshiro256StarStar::__construct() ejemplo

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

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

Ejemplo #2 Derivando una semilla de un string

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

    // Hashea el string con SHA-256 usando salida binaria para convertir el
    // $string en una semilla de 256 bits. Usar el mismo string resultará
    // en la misma secuencia de aleatoriedad.
    $e = new \Random\Engine\Xoshiro256StarStar(
        hash('sha256', $string, binary: true)
    );

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

El ejemplo anterior mostrará:

    6e013453678388c2

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