Construit un nouveau moteur PCG Oneseq 128 XSL RR 64

# Random\Engine\PcgOneseq128XslRr64::__construct

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__construct — Construit un nouveau moteur PCG Oneseq 128 XSL RR 64

### Description

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

### Liste de paramètres

`seed`

  L'état interne de 128 bits (16 octets) composé d'un entier non signé de 128 bits est initialisé dépend du type utilisé comme `seed`.

  Type | Description
  --- | ---
  null | Remplit l'état avec 16 octets aléatoires générés en utilisant le CSPRNG.
  int | Remplit l'état en définissant l'état à `0`, en avançant le moteur d'un pas, en ajoutant la valeur de `seed` interprétée comme un entier non signé de 64 bits, et en avançant le moteur d'un autre pas.
  string | Remplit l'état en interprétant une chaîne de 16 octets string en tant qu'entier non signé de 128 bits en little-endian.

### Erreurs / Exceptions

- Si la longueur d'un string `seed` n'est pas de 16 octets, une ValueError sera lancée.

### Exemples

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

    <?php
    // utilise une graine aléatoire de 128 bits.
    $e = new \Random\Engine\PcgOneseq128XslRr64();

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

Exemple #2 Dériver une graine à partir d'une chaîne de caractères

    <?php
    $string = "My string seed";

    // Hache la chaîne avec un SHA-256 tronqué en utilisant une sortie binaire
    // pour transformer la chaîne en une graine de 128 bits. Utiliser la même
    // chaîne donnera la même séquence de nombres aléatoires.
    $e = new \Random\Engine\PcgOneseq128XslRr64(
        substr(hash('sha256', $string, binary: true), 0, 16)
    );

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

L'exemple ci-dessus va afficher :

    8333ef59315b16d8

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