Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UP_s_num_1.doc
Скачиваний:
34
Добавлен:
20.12.2018
Размер:
2.93 Mб
Скачать
  1. Мультипликативный конгруэнтный метод (метод вычетов)

Согласно этому методу псевдослучайная последовательность вычисляется по рекуррентным формулам

(3.25)

где параметры программного датчика (натуральные числа): — множитель, М — модуль, {1,..., М - 1} — стартовое значение, операция у = (z) modM означает вычет числа z по модулю М:

у = z - М[z/М].

Из (3.25) следует: 1) последовательность {}, а значит и

i}, всегда зацикливается , т.е. начиная с некоторого номера i0 образуется цикл, который повторяется бесконечное число раз;

2) период последовательности Т М - 1 (если = 0 , то = 0 для любого 1).

Параметры μ, М, выбираются из условия максимума периода. Период Т можно определить аналитически методами теории чисел или с помощью численных экспериментов на ЭВМ. Например, часто используется типовой программный датчик RANDU. В табл. 3.5 приведены данные для двух вариантов датчика соответствующих 32-разрядной ЭВМ (машинное слово содержит q = 32 разряда) и 16-разрядной ЭВМ (q = 16).

Таблица 3.5

q

M

β

T

32

231 = 2147483648

216 + 3 = 65539

65539

М/4 = 36870912

16

215 = 32768

28 + 3 = 259

259

М/4 = 8192

2. Метод, использующий линейные смешанные формулы.

В этой ситуации псевдослучайная последовательность вычисляется рекуррентно по так называемой линейной смешанной формуле, обобщающей (3.25):

(3.26)

Параметры датчика: р — порядок;

стартовые значения; — множители; с — приращение; М — модуль. Период датчика Т МР - 1, т.е. растет с увеличением М и p.

3. Метод, использующий нелинейные рекуррентные формулы.

Иногда псевдослучайная последовательность генерируется с помощью квадратичного рекуррентного соотношения:

(3.27)

Параметры целесообразно выбирать с помощью следующего утверждения [7].

Теорема 3.1. Если М = 2q, q 2, то наибольший период Tmax = M последовательности (3.27) достигается тогда и только тогда, когда , с — нечетные, — четно, причем

()mod 4 = (+ 1)mod 4.

4. Метод Макларена-Марсальи.

Метод основан на комбинировании двух простейших программных датчиков БСВ. Пусть {bi}, {ci} (i = 0, 1, 2, ...) — псевдослучайные последовательности, порождаемые независимо работающими программными датчиками Д1 и Д2 соответственно; V = {V(0), ..., V(K - 1)} — вспомогательная таблица К чисел. Вначале V-таблица заполняется К членами последовательности {bi}:

Через {ai} будем обозначать комбинированную псевдослучайную последовательность. Член аi является результатом последовательности операций

s = [сi, К], ai = V(s), V(s) = bi+K (i = 0, 1, 2, ...).

Отсюда видно, что Д2 осуществляет случайный выбор из V-таблицы, а также ее случайное заполнение числами, порожденными Д1. Этот метод позволяет ослабить зависимость между членами ai и получать "невероятно" большие периоды, если периоды T1, Т2 последовательностей {bi}, {ci} — взаимно простые числа.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]