Random\Engine\PcgOneseq128XslRr64::__construct

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__constructConstrói um novo mecanismo PCG Oneseq 128 XSL RR 64

Descrição

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

Aviso

Esta função não está documentada; apenas a lista de argumentos está disponível.

Parâmetros

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.

Erros/Exceções

  • Se o comprimento de uma string seed não for 16 bytes, um ValueError será gerado.

Exemplos

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
adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top