Які алгоритми використовуються в сучасних і якісних генераторах випадкових чисел?
Які алгоритми використовуються в сучасних і якісних генераторах випадкових чисел?
Відповіді:
В R за замовчуванням для генерації випадкових чисел є:
Ви можете легко перевірити це, а саме.
> RNGkind()
[1] "Mersenne-Twister" "Inversion"
Можна змінити генератор за замовчуванням на інші PRNG, такі як Super-Duper, Wichmann-Hill, Marsaglia-Multicarry або навіть PRNG, що постачається користувачем. Детальнішу інформацію див. У розділі? RNGkind. Мені ніколи не потрібно було змінювати PRNG за замовчуванням.
Бібліотека C GSL також за замовчуванням використовує Mersenne-Twister .
Вихор Мерсенна це один я стикався і використовується до цих пір.
PNG Xorshift, розроблений Джорджем Марсалья. Її період (2 ^ 128-1) значно коротший, ніж Мерсен-Твістер, але алгоритм дуже простий у здійсненні і піддається паралелізації. Добре працює на багатьох основних архітектурах, таких як мікросхеми DSP і Tesla Nvidia.
На сайті http://prng.di.unimi.it/ ви можете знайти перестрілку декількох генераторів випадкових чисел, протестованих за допомогою TestU01, сучасного тестового набору для генераторів псевдовипадкових чисел, які замінили diehard та dieharder. Ви можете вибрати і вибрати.