Рекомендация, необходимая для PRNG - PullRequest
0 голосов
/ 02 июня 2011

Я ищу алгоритм генерации псевдослучайных чисел, способный генерировать случайные 128- / 256-битные числа.Безопасность и криптографическая целостность не важны;простота и производительность ценятся превыше всего.В идеале, алгоритм будет использоваться на современных платформах мобильных телефонов.Можете ли вы порекомендовать такой алгоритм?Это возможно?Заранее спасибо!

Ответы [ 3 ]

0 голосов
/ 12 июня 2011

Если простота - ваш главный приоритет, посмотрите на генератор в этой статье .Сердце генератора - всего две строчки кода.Он не такой современный, как Mersenne Twister, но он проще и все же обладает хорошими статистическими свойствами.

0 голосов
/ 27 ноября 2014

http://burtleburtle.net/bob/rand/smallprng.html

Это мало (128 бит состояния) и быстро и проходит все статистические тесты общего назначения, доступные в настоящее время.Любой другой PRNG, связанный с приведенными здесь ответами, быстро проходит тесты - PRNG на основе MWC не проходит много тестов, в то время как SFMT - только тесты типа бинарная матрица ранга / линейной сложности.

Как уже говорили другие, для получения 128 бит просто объедините последовательные 32-битные выходы.Не пытайтесь принудительно извлекать больше битов из состояния PRNG, которое дает его обычная функция вывода, что, как правило, ухудшает качество вывода, иногда в значительной степени.

0 голосов
/ 12 июня 2011

Вам следует попробовать SFMT: SIMD-ориентированный Fast Mersenne Twister.
Этот PRNG был разработан для получения 128-битных целых чисел, используя преимущества векторных инструкций, предлагаемых процессорами.

Для получения дополнительной информации об этом PRNG, пожалуйста, посмотрите на другой пост, на который я ответил, посоветовав SFMT: лучший генератор псевдослучайных чисел

Полное описание см.Официальная страница, где вы также можете скачать SFMT: http://www.math.sci.hiroshima -u.ac.jp / ~ m-mat / MT / SFMT / index.html

...