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