
- •Датчики последовательности псевдослучайных чисел. Оглавление
- •5. Литература
- •1. Генерация случайных чисел
- •2. Оценка качества датчиков случайных чисел
- •3. Тесты
- •Измерение длин l и l датчика псевдослучайной последовательности чисел.
- •Тесты на равномерность распределения псевдослучайных чисел Тесты к- равномерности. [2]
- •Тест №2
- •2.1 Одномерная равномерность
- •2.2 Двумерная равномерность
- •2.3 Трёхмерная равномерность
- •2.4 Четырёхмерная равномерность
- •Тест №3 Вычисление коэффициентов неравномерности
- •Цифровая равномерность Тест №4
- •4.1 Одномерная цифровая равномерность
- •Двумерная цифровая равномерность
- •4.Датчики случайных чисел Датчик №1: Метод Неймана.
- •Мультипликативные алгоритмы. Датчик №2: Линейный конгруэнтный генератор Лемера 1951.
- •Датчик №3: Модификация Коробова [9].
- •Другие формы вычетов. Датчик №4:
- •Датчик №5
- •Датчик №6[4], [7]
- •Датчик №7 Датчик со счётчиком [5], [7]
- •Тригонометрические алгоритмы.
- •Датчик №8 [7]
- •Датчик №9: Тригонометрический алгоритм со счётчиком [7].
- •Датчик №10:Алгоритм со счётчиком [5].
- •Литература
Другие формы вычетов. Датчик №4:
Ri+1 = FRAC(M*Ri), R0 = u / p (4.1)
где FRAC(A)=A-INT(A)- есть дробная часть числа А.
pиM-специально подобранные целые постоянные.
Значение u(u-целое число,u<p) однозначно определяет последовательность. Длина последовательности неповторяющихся чисел, очевидно, не превосходитp.
Смысл формулы состоит в следующем: Разложим R0в бесконечную М-ичную дробь, т.е. дробь по степенямM-k:
(4.2)
где akпринимает одно из возможных значений 0, 1, …M-1.
Теперь:
R1=FRAC(M*R0) = 0,а2а3…
R2 = FRAC(M*R1) = FRAC(M*0,a2a3...)=0,a3a4…=FRAC(M2*R0)
…………………………………………………………(4.3)
Ri = FRAC(Mi * R0) = 0,ai + 1 ai + 2 …
Т.е. операция полученияRiсостоит в перенесении запятой вR0наiпозиций вправо и отбрасывании целой части.
Для того, чтобы дробь (4.2) была бесконечной необходимо, чтобы выражение R0=u/pявляло собой несократимую дробь.
Например, возьмём p=2m,m-целое число. Тогда для того, чтобыuиpбыли взаимно простыми достаточно выбратьuтаким, чтобы в разложении его на простые сомножители среди них не встречался бы множитель 2. Можно выбиратьuиpвзаимно простыми и другими способами.
Примечание:Многие специалисты [2] исследовали и проверяли псевдослучайную последовательность двоичных чиселVi:
Vi :=FRAC(M * Vi)
V0 := 2 – m (4.4)
m-число двоичных разрядов мантиссы ячейки ЭВМ.
Они брали множитель Mвида:
M= 52 q + 1,q-целое число.
Согласно формуле (4.3) имеем:
Vi = FRAC(5i*(2 q+1) ,(4.5)
Опишем получение последовательности величин Viаналогично алгоритму (4.1), (4.2).
Запишем дробь V0=2 – m в системе счисления с основанием 5:
(4.6)
где akпринимает одно из значений: 0, 1, 2, 3, 4.
Соотношение (4.5) означает, что запятая в (4.6) переносится на (2q+1)*iпозиций вправо и целая часть полученного числа отбрасывается. Отсюда ясно, что при малых 2q+1 величиныVi,Vi+1будут заметно зависимыми. Поэтому рекомендуется братьqмаксимальным из тех, для которых выполняется условие:
(4.7)
Методами теории чисел можно показать, что для указанных параметров M,V0длина последовательности будет:
Величина 52q+1в двоичном виде оканчивается на 01. Поэтому всеViесть двоичные дроби, последние два разряда которых равны 01.
Вследствии равенства L=2m-2остальныеm-2 разряда пробегают все возможные значения (комбинации).
Поэтому в качестве V0можно брать любуюm-разрядную двоичную дробь такого типа.
Этот метод вычетов реализован программой в машинных кодах на ЭВМ М-220 и БЭСМ-6.
Величины М и mвзяты равными соответственно:
M=515и 517иm=36 и 40.
Для БЭСМ-6 длина L2*1011.
Задание:Исследовать как влияют величиныM,uиpформулы (4.1) на стохастические качества и на длиныLиlпоследовательности псевдослучайных чисел этого датчика.
Определить влияет ли R0на статистические параметры датчика и, если влияет, то найти допустимую зону заданияR0. Представить результаты тестирования датчика для его оптимальных параметров.
Датчик №5
В [5], [6] предлагается в формуле(4.1) выбирать MиR0следующими способами:
Способ 1:M=8t3,t- целое число.
R0- любое нечётное число, меньшее 1,т.е. дробь вида 0,xxxxxxн, н - нечётная цифра.
В [6] рекомендуется брать M=37. Однако, такой датчик заметно меняет свои статистические характеристики при измененииR0.
Способ 2:M=16q+11,q-целое число.
R0 - любое нечётное число меньшее 1. Например, приM=91,R0=0.11111111 получаетсяL10000.
Задание:Исследовать такими способами выбираемых констант их влияние на стохастические качества датчика и длиныlиLпоследовательности псевдослучайных чисел. Посмотреть также, как влияет выбор чётногоR0. Установить влияет лиR0на параметры датчика и, если влияет, то оценить область приемлемого значенияR0. Представить результаты тестирования датчика с подобранными оптимальными параметрами.