(PHP 8 >= 8.2.0)
Random\Engine\PcgOneseq128XslRr64::__construct — Construit un nouveau moteur PCG Oneseq 128 XSL RR 64
Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.
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. |
seed
n'est pas de 16 octets,
une ValueError sera lancée.
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 Deriving a seed from a 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