Хорошо равнораспределенный длиннопериодный линейный - Well equidistributed long-period linear
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
В Долговременная линейная равнораспределенная скважина (WELL) это семья генераторы псевдослучайных чисел разработан в 2006 г. Франсуа Паннетон, Пьер Л'Экуайер, и Макото Мацумото (松本 眞).[1] Это форма регистр сдвига с линейной обратной связью оптимизирован для программной реализации на 32-битной машине.
Операционный дизайн
Структура похожа на Мерсенн Твистер, большое состояние, состоящее из предыдущих выходных слов (32 бита каждое), из которого новое выходное слово генерируется с использованием линейного повторения по модулю 2 над конечным двоичное поле . Однако более сложное повторение дает более плотный порождающий полином, что дает лучшие статистические свойства.
Каждый шаг генератора считывает пять слов состояния: самые старые 32 бита (которые могут перекрывать границу слова, если размер состояния не кратен 32), самые новые 32 бита и три других слова между ними.
Затем серия из восьми однословных преобразований (в основном вида х: = х ⊕ (х >> к)
) и шесть операций «исключающее ИЛИ» объединяют их в два слова, которые становятся двумя новейшими словами состояния, одно из которых будет выходным.
Варианты
Для следующих генераторов предусмотрены специальные параметры:
- WELL512a
- WELL521a, WELL521b
- WELL607a, WELL607b
- WELL800a, WELL800b
- WELL1024a, WELL1024b
- WELL19937a, WELL19937b, WELL19937c
- WELL21701a
- WELL23209a, WELL23209b
- WELL44497a, WELL44497b.
Числа указывают размер состояния в битах; буквенные суффиксы обозначают варианты одного размера.
Реализации
- Реализации WELL512a, WELL1024a, WELL19937a, WELL19937c, WELL44497a, WELL44497b на языке C (Бесплатно для некоммерческого использования)
- Реализации тех же алгоритмов в Scala
- Реализации на C ++
- Реализации WELL512, WELL1024, WELL607 на Java
- Реализации WELL512, WELL1024 на BBC BASIC
- Модифицированные "максимально равнораспределенные" реализации WELL19937, WELL44497 на C (Бесплатно для некоммерческого использования)
- Реализация WELL512 на C (Всеобщее достояние)
Рекомендации
- ^ Panneton, François O .; l'Ecuyer, Пьер; Мацумото, Пьер (март 2006 г.). «Улучшенные долгопериодические генераторы на основе линейных повторений по модулю 2» (PDF). Транзакции ACM на математическом ПО. 32 (1): 1–16. CiteSeerX 10.1.1.73.5499. Дои:10.1145/1132973.1132974.CS1 maint: ref = harv (связь)
внешняя ссылка
P ≟ NP | Этот теоретическая информатика –Связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |