Selhoz-katalog.ru

Сельхоз каталог

Вихрь Мерсенна

Вихрь Мерсенна (англ. Mersenne twister) — генератор псевдослучайных чисел (ГПСЧ), разработанный в 1997 году японскими учёными Макото Мацумото (яп. 松本 眞) и Такудзи Нисимура (яп. 西村 拓士). Вихрь Мерсенна основывается на свойствах простых чисел Мерсенна (отсюда название) и обеспечивает быструю генерацию высококачественных псевдослучайных чисел. Вихрь Мерсенна лишен многих недостатков, присущих другим ГПСЧ, таких как малый период, предсказуемость, легко выявляемая статистическая зависимость. Тем не менее этот генератор не является криптостойким, что ограничивает его использование в криптографии.

Существуют по меньшей мере два общих варианта алгоритма, различающихся только размером используемого простого числа Мерсенна, наиболее распространённым из которых является MT19937.

Свойства

Вихрь Мерсенна является витковым регистром сдвига с обобщённой отдачей (twisted generalised feedback shift register, TGFSR). «Вихрь» — это преобразование, которое обеспечивает равномерное распределение генерируемых псевдослучайных чисел в 623 измерениях (для линейных конгруэнтных генераторов оно ограничено 5-ю измерениями). Поэтому корреляция между последовательными значениями в выходной последовательности Вихря Мерсенна пренебрежимо мала.

Вихрь Мерсенна имеет огромный период, равный числу Мерсенна 219937 − 1, что более чем достаточно для многих практических приложений.

Существуют эффективные реализации Вихря Мерсенна, превосходящие по скорости многие стандартные ГПСЧ (в частности, в 2-3 раза быстрее линейных конгруэнтных генераторов). Вихрь Мерсенна реализован в библиотеке gLib и стандартных библиотеках для PHP, Python и Ruby.

Выдаваемые вихрем Мерсенна псевдослучайные числа успешно проходят тесты DIEHARD, что говорит об их хороших статистических свойствах.

Литература

  • M. Matsumoto, T. Nishimura (1998). «Mersenne twister: A 623-dimensionally equidistributed uniform pseudorandom number generator». ACM Trans. on Modeling and Computer Simulations 8 (1): 3-30. 10.1145/272991.272995.

Ссылки

  • Mersenne Twister home page, with C code (англ.)
  • The GNU Scientific Library (GSL), containing an implementation of the Mersenne Twister (англ.)
  • Cuba — a library for multidimensional numerical integration
  • A claimed implementation of the Mersenne Twister algorithm (англ.)
  • Implementation of Mersenne Twister for REALbasic (requires REALbasic 2006r1 or greater) (англ.)
  • Implementation of Mersenne Twister for Ada (англ.)
  • Implementation of Mersenne Twister as an add-in for Microsoft Excel (англ.)
  • CPAN module implementing the Mersenne Twister for use with Perl (англ.)

Вихрь Мерсенна.

© 2021–2023 selhoz-katalog.ru, Россия, Тула, ул. Октябр 53, +7 (4872) 93-16-24