(PHP 8 >= 8.2.0)
Random\Engine\PcgOneseq128XslRr64::__construct — Constrói um novo mecanismo PCG Oneseq 128 XSL RR 64
Esta função não está documentada; apenas a lista de argumentos está disponível.
seed
A forma como o estado interno de 128 bits (16 bytes) consistindo em um inteiro sem sinal de 128 bits é
semeado depende do tipo usado como seed
.
Tipo | Descrição |
---|---|
null | Preenche o estado com 16 bytes aleatórios gerados usando o CSPRNG. |
int |
Preenche o estado definindo-o como 0 , avançando o mecanismo um passo,
adicionando o valor de seed interpretado como um inteiro de 64 bits sem sinal,
e avançando o mecanismo outro passo.
|
string | Preenche o estado interpretando uma string de 16 bytes como um inteiro little-endian sem sinal de 128 bits. |
seed
não for
16 bytes, um ValueError será gerado.
Exemplo #1 Exemplo de Random\Engine\PcgOneseq128XslRr64::__construct()
<?php
// Usa uma semente de 128 bits aleatória.
$e = new \Random\Engine\PcgOneseq128XslRr64();
$r = new \Random\Randomizer($e);
?>
Exemplo #2 Derivando uma semente de uma string
<?php
$string = "My string seed";
// Hash da string com SHA-256 truncado usando saída binária
// para transformar a $string em uma semente de 128 bits. Usar a mesma
// string resultará na mesma sequência de aleatoriedade.
$e = new \Random\Engine\PcgOneseq128XslRr64(
substr(hash('sha256', $string, binary: true), 0, 16)
);
echo bin2hex($e->generate()), "\n";
?>
O exemplo acima produzirá:
8333ef59315b16d8