Quais algoritmos são usados em geradores de números aleatórios modernos e de boa qualidade?
Quais algoritmos são usados em geradores de números aleatórios modernos e de boa qualidade?
Respostas:
Em R, a configuração padrão para geração de número aleatório é:
Você pode facilmente verificar isso, viz.
> RNGkind()
[1] "Mersenne-Twister" "Inversion"
É possível alterar o gerador padrão para outros PRNGs, como Super-Duper, Wichmann-Hill, Marsaglia-Multicarry ou mesmo um PRNG fornecido pelo usuário. Veja o? RNGkind para mais detalhes. Eu nunca precisei alterar o PRNG padrão.
A biblioteca C GSL também usa o Mersenne-Twister por padrão.
O Mersenne Twister é um que eu já encontrei e usei antes.
O PNG Xorshift criado por George Marsaglia. Seu período (2 ^ 128-1) é muito mais curto que o Mersenne-Twister, mas o algoritmo é muito simples de implementar e se presta à paralelização. Apresenta bom desempenho em arquiteturas de muitos núcleos, como chips DSP e Tesla da Nvidia.
Em http://prng.di.unimi.it/, você pode encontrar vários geradores de números aleatórios testados usando o TestU01, o moderno conjunto de testes para geradores de números pseudo-aleatórios que substituíram o obstáculo e o dieharder. Você pode escolher e escolher.