srand

(PHP 4, PHP 5, PHP 7, PHP 8)

srandSemeia o gerador de números aleatórios

Descrição

srand(?int $seed = null, int $mode = MT_RAND_MT19937): void

Semeia o gerador de números aleatórios com seed ou com um valor aleatório se seed for 0.

Note: Não é necessário inicializar o gerador de números aleatórios com srand() ou mt_srand(), pois isso é feito automaticamente.

Caution

Como o mecanismo Mt19937 (“Mersenne Twister”) aceita apenas um único inteiro de 32 bits como semente, o número de sequências aleatórias possíveis é limitado a apenas 232 (ou seja, 4.294.967.296), embora o Mt19937 possua um gigantesco período de 219937-1.

Ao depender da geração aleatória implícita ou explícita de sementes, as duplicações aparecerão muito mais cedo. Sementes duplicadas são esperadas com probabilidade de 50% depois de menos de 80.000 sementes geradas aleatoriamente de acordo com o problema do aniversário. Uma probabilidade de 10% de uma semente duplicada acontece depois de gerar aleatoriamente cerca de 30.000 sementes.

Isso torna o Mt19937 inadequado para aplicações em que sequências duplicadas não devem ocorrer com mais do que uma probabilidade desprezível. Se a geração reproduzível de sementes for necessária, ambos os mecanismos Random\Engine\Xoshiro256StarStar e Random\Engine\PcgOneseq128XslRr64 suportam sementes muito maiores que são improváveis de colidir aleatoriamente. Se a reprodutibilidade não for necessária, o mecanismo Random\Engine\Secure fornece aleatoriedade criptograficamente segura.

Note: A partir do PHP 7.1.0, srand() tornou-se um apelido de mt_srand().

Parâmetros

seed

Preenche o estado com valores gerados com um gerador congruente linear que foi propagado com seed interpretado como um número inteiro sem sinal de 32 bits.

Se seed for omitido ou null, um número inteiro aleatório e sem sinal de 32 bits será usado.

Valor Retornado

Nenhum valor é retornado.

Registro de Alterações

Versão Descrição
8.3.0 seed agora é anulável.
7.1.0 srand() foi transformado em um apelido de mt_srand().

Veja Também

  • rand() - Gera um número inteiro aleatório
  • getrandmax() - Mostrar o maior valor aleatório possível
  • mt_srand() - Semeia o Gerador de Números Aleatórios Mersenne Twister