от
Я ищу мощные, достаточно надежным ГСЧ без использования специального оборудования. Его можно использовать математические методы (Мерсенн Твистер и т. д.), Он может "собирать энтропии" от машины, что угодно. На Linux/и т. д. У нас есть
drand48()
, который генерирует 48 случайных бит. Хотелось бы аналогичную функцию/класс на C или C#, который может генерировать более 32 бит случайности и что младшие биты являются столь же случайными, как старшие биты. Она не обязана быть криптографически безопасной, но она не должна использовать или быть основаны на языке Си
rand()
или .Чистая
System.Random
. Любой исходный код, ссылки на источник и т. д. буду признателен! В противном случае, что типа ГСЧ должен я искать?

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

6 Ответы

0 голосов
от
Я ищу мощные, достаточно надежным ГСЧ без использования специального оборудования. Его можно использовать математические методы (Мерсенн Твистер и т. д.), Он может "собирать энтропии" от машины, что угодно. На Linux/и т. д. У нас есть
drand48()
, который генерирует 48 случайных бит. Хотелось бы аналогичную функцию/класс на C или C#, который может генерировать более 32 бит случайности и что младшие биты являются столь же случайными, как старшие биты. Она не обязана быть криптографически безопасной, но она не должна использовать или быть основаны на языке Си
rand()
или .Чистая
System.Random
. Любой исходный код, ссылки на источник и т. д. буду признателен! В противном случае, что типа ГСЧ должен я искать?
0 голосов
от
Для C , Буст.Random-это, наверное, то, что вы ищете. Он имеет поддержку для МТ (среди многих других алгоритмов), и можно собирать энтропии через класс
nondet_random
. Зацените! :-)
0 голосов
от
Научная библиотека GNU (ГСЛ) имеет довольно обширный набор генераторов РН, тестирования и т. д. Если вы находитесь на Linux, он, наверное, уже существующих в системе.
0 голосов
от
Следить за научной библиотеке гну. Это под лицензией GPL, а не под LGPL. Как другие люди упомянули, повышение случайных классов являются хорошим началом. Их реализация соответствует коду ПГСЧ намечен на ТР1: http://www.boost.org/doc/libs/1_35_0/libs/random/index.html http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1452.html Если у вас есть последние версии компилятор G , вы можете найти в библиотеках ТР1 уже включены
0 голосов
от
В C 11 был принят надежная случайная библиотека, основанного на повышение.случайные. Вы можете открыть ряд случайных чисел системы используют разные алгоритмы, чтобы удовлетворить ваши качества, скорости, или требованиям к размеру. Качество реализации будет даже обеспечить доступ к любой недетерминированный ГСЧ ваша платформа предлагает через
std::random_device
. Кроме того, существует множество переходников для производства конкретных дистрибутивов, исключая необходимость делать такие манипуляции вручную (что часто делается неправильно).
#include
0 голосов
от
Boost.Random
мой первый выбор для ГСЧ http://www.boost.org/doc/libs/random
...