(PHP 4, PHP 5, PHP 7, PHP 8)
mt_srand — Semeia o Gerador de Números Aleatórios Mersenne Twister
Semeia o gerador de números aleatórios com
seed ou com um valor aleatório
se nenhum seed for fornecido.
Nota: Não é necessário inicializar o gerador de números aleatórios com srand() ou mt_srand(), pois isso é feito automaticamente.
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.
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.
modeUse uma das constantes a seguir para especificar a implementação do algoritmo a ser usado.
MT_RAND_MT19937:
A implementação correta do Mt19937, disponível a partir do PHP 7.1.0.
MT_RAND_PHP
Usa uma implementação incorreta do Mersenne Twister que foi usada como padrão até o PHP 7.1.0.
Este modo está disponível para compatibilidade com versões anteriores.
Este recurso foi DESCONTINUADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.
Nenhum valor é retornado.
| Versão | Descrição |
|---|---|
| 8.3.0 |
seed agora é anulável.
|
| 7.1.0 | srand() foi transformado em um apelido de mt_srand(). |
| 7.1.0 |
mt_rand() foi atualizado para usar a versão fixa e correta do
algoritmo Mersenne Twister. Para voltar ao comportamento antigo, use mt_srand() com MT_RAND_PHP como segundo parâmetro.
|