(PHP 8 >= 8.2.0)
Random\Engine\PcgOneseq128XslRr64::__construct — Construye un nuevo motor PCG Oneseq 128 XSL RR 64
Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.
seed
El estado interno de 128 bits (16 bytes) compuesto por un entero sin signo de 128 bits es
inicializado dependiendo del tipo utilizado como seed
.
Tipo | Descripción |
---|---|
null | Rellena el estado con 16 bytes aleatorios generados utilizando 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 una cadena de 16 bytes string como un entero sin signo de 128 bits en little-endian. |
seed
no es de 16 bytes,
se lanzará una ValueError.
Ejemplo #1 Ejemplo de Random\Engine\PcgOneseq128XslRr64::__construct()
<?php
// utiliza una semilla aleatoria de 128 bits.
$e = new \Random\Engine\PcgOneseq128XslRr64();
$r = new \Random\Randomizer($e);
?>
Ejemplo #2 Derivar una semilla de un string
<?php
$string = "My string seed";
// Hachea la cadena con un SHA-256 truncado utilizando una salida binaria
// para transformar la cadena en una semilla de 128 bits. Utilizar la misma
// cadena dará la misma secuencia de números aleatorios.
$e = new \Random\Engine\PcgOneseq128XslRr64(
substr(hash('sha256', $string, binary: true), 0, 16)
);
echo bin2hex($e->generate()), "\n";
?>
El resultado del ejemplo sería:
8333ef59315b16d8