Главная > Математика > Численные методы Монте-Карло
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

2.2. Некоторые конкретные алгоритмы.

2.2.1. Первый алгоритм для получения псевдослучайных чисел был предложен Дж. Нейманом. Его называют

методом середины квадрата (middle-square method). В этом методе число предполагается -значным:

Чтобы получить число , надо возвести в квадрат

и затем отобрать средние цифр этого квадрата:

Нетрудно проверить, что этому методу соответствует функция

или, что то же,

Однако от метода середины квадрата вычислители отказались, так как в последовательностях, построенных таким образом, получается больше, чем нужно, малых чисел (см. ниже упражнение 4 гл. 1). Интересно, что при некоторых наблюдается вырождение последовательности, т. е. при

Наибольшее распространение получил алгоритм, предложенный Д. Лемером, который называют методом вычетов (residual method) или методом сравнений (congruential method). В этом методе , т. е.

где g — большое целое число.

Докажем, что если задать в форме несократимой дроби , где и М — целые числа, и М взаимно просто с g, то все будут несократимыми дробями вида где числители определяются формулой

Запись (7) означает, что равно остатку, полученному при делении на М (или, другими словами, это наименьший положительный вычет по модулю М).

Доказательство (по индукции). Пусть несократимая дробь . Из (7) следует, , где — целое число. Легко видеть, что взаимно просто с М В самом деле, если допустить, что и М есть общий множитель — простое число должно делиться на но g делиться на h не может, так как g взаимно просто с поэтому должно делиться на h число а это противоречит предположению о том, что несократимая дробь. Итак, взаимно просто с М и

На практике обычно используют формулу (7). Изучению последовательностей посвящено много работ. Методами теории чисел удалось исследовать длину отрезка апериодичности (см. упражнение 5 гл. 1) и оценить некоторые величины, аналогичные коэффициентам корреляции между между и т. п. Однако вопрос о пригодности таких псевдослучайных чисел в конечном счете решается обычными статистическими тестами § 3, т. е. эмпирически. При некоторых получаются удовлетворительные последовательности, при доугих — плохие. (См. также гл. 7, п. 3.3.)

Удовлетворительная последовательность псевдослучайных чисел получается, например, при результаты статистической проверки этих чисел приведены в [171].

Обширная литература, посвященная методу сравнений, имеется в [69, 139, 140]. Ряд статей с указанием недостатков метода перечислен в [180].

2.2.3. В качестве примера нелинейного алгоритма, использующего некоторые особенности системы команд ЭВМ, рассмотрим алгоритм, предложенный автором книги для ЭВМ «Стрела». В этом алгоритме число получается из числа тремя командами:

1) число умножается на большую константу

2) изображение произведения в ячейке ЭВМ сдвигается на разрядов влево;

3) вычисляется абсолютная величина полученного числа, которая и есть вычислении абсолютной величины число нормализуется).

Удовлетворительная последовательность псевдослучайных чисел получается, например, при результаты статистической проверки этих чисел приведены в [75].

Чтобы пояснить этот алгоритм, необходимо указать, что в ЭВМ «Стрела» числа представляются в нормализованной двоичной форме где порядок числа, мантисса Ячейка ЭВМ, в которую записывается число состоит из 43 двоичных разрядов (рис 6).

Рис. 6.

В разряде записана величина которая может равняться нулю или. единице, и

двоичной записи

Если произведению соответствует ячейка , то после операции сдвига получаем . Абсолютная величина этого числа в двоичной записи равна

Нетрудно проверить, что в случае, когда размещение мантиссы и порядка в ячейке ЭВМ другое, то же число можно получить из с помощью двух или трех сдвигов и поразрядного сложения результатов этих сдвигов

2.2.4. Для получения псевдослучайных чисел на различных ЭВМ используют весьма разнообразные алгоритмы, подобные изложенному в п. 2.2.3, которые иногда называют способами перемешивания. Сведения о них имеются в [19, 69]. К сожалению, описание алгоритмов далеко не всегда сопровождается указанием количества проверенных чисел и тестов, которым эти числа удовлетворяют, или хотя бы указанием работ, в которых имеются данные о таких проверках.

Например, некоторое распространение получил трехкомандный алгоритм, разработанный Д И. Голенко для той же ЭВМ «Стрела». Однако позднее сам автор алгоритма обнаружил ([19], стр. 117), что получаемые этим методом числа плохо удовлетворяют одному из важнейших тестов — проверке пар.

2.2.5. Из других алгоритмов вида (4) отметим попытки «улучшения» метода вычетов (6) путем рассмотрения функций вида

или

где — заданное дробное число.

Заметного распространения эти методы не получили.

<< Предыдущий параграф Следующий параграф >>
Оглавление