Random\Engine\PcgOneseq128XslRr64::__construct

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__constructConstruye un nuevo motor PCG Oneseq 128 XSL RR 64

Descripción

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

Advertencia

Esta función no está documentada actualmente, solamente se encuentra disponible la lista de parámetros.

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.

Errores/Excepciones

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

Ejemplos

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
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top