Intereting Posts
Установка OpenMP в Mac OS X 10.11 В C, как цикл для каждого перечисляемого литерала, где литералы не имеют последовательных значений cat / Xargs / команда VS для / bash / command Thrust – Как использовать мой массив / данные – модель Как инициализировать структуру с использованием стиля c при использовании компилятора g ++? Каковы некоторые полезные примеры malloc () в C? Тестирование реализации алгоритма AES в C двухмерный динамический массив (realloc в c) C – Использование операторов бит-сдвига для базового преобразования Объявление указателей на функционирование возвращаемых массивов на самом деле является законным? Нужен ли мне -франтический флаг из GCC с C11? открытый исходный код для реализации RSA в C / C ++ (используйте библиотеку или напишите мне) огромные двоичные файлы с objcopy Возможно ли уловить ошибку в C для Rf_eval R? максимальное значение в массиве C

Хороший генератор случайных чисел для C

Мне нужен хороший генератор случайных чисел для программы, которую я пишу на C. Это генератор фрактального пламени, если вам интересно. Мои изображения выглядели очень зернистыми, хотя в прошлом у меня был успех с тем же алгоритмом. Разница, я наконец поняла, была генератором случайных чисел, который я использовал. Невероятно, это делает РАЗНОМАЮЩАЯ разница. Я надеюсь, что еще лучший генератор случайных чисел может дать лучшие результаты. Ответ может быть выполнен в виде примера кода или ссылки на ранее существовавшую библиотеку случайных чисел. Наиболее важные требования:

  • он должен производить относительно качественные streamи случайных чисел
  • его период должен составлять более десяти миллиардов
  • он должен быть достаточно быстрым и предлагать хороший компромисс производительности.

Это похоже на хороший вариант использования для Mersenne Twister

  • Это быстрее, чем большинство стандартных реализаций rand ()
  • Он имеет очень длинный (2 ^ 19937-1) период
  • Он имеет довольно высокое качество – он проходит большинство стандартизованных тестов случайности
  • Это общественное достояние

Если вы ищете очень быстрый и достойный алгоритм качества, вы должны подумать о xorshift128+ или xorshift1024* . Они почти такие же быстрые, как и LCG (по моему сравнению они только на 30% медленнее, чем просто встроенные LCG), имея гораздо лучшее качество, чем LCG в то же время.

Вы можете найти их код и сравнение здесь: http://xorshift.di.unimi.it/