
- •Датчики последовательности псевдослучайных чисел. Оглавление
- •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.Датчики случайных чисел Датчик №1: Метод Неймана.
Первый алгоритм для получения псевдослучайных чисел был предложен Дж. Нейманом. Его называют методом середины квадратов.
Пусть задано 4-значное число R0=0.9876. Возведём его в квадрат. Получим 8-значное числоR02=0.97535376. Выберем 4 средние цифры из этого числа и положимR1=0.5353. Затем снова возведём в квадрат и извлечём из него 4 средние цифры. ПолучимR2и т.д. Этот алгоритм не оправдал себя. Получалось больше чем нужно малых значенийRi.
Однако, представляет интерес исследовать качество этого генератора со смещённой вправо группой выбора цифр у Ri2:
где a-максимальная значность дроби для данной ЭВМ (например, а=8).
b-количество знаков после запятой в числеRi(например, 5).
INT(А)- целая часть числа.
Для a=8,b=5,R0=0.51111111 на ПКZX-Spectrumполучается около 1200 неповторяющихся чисел.
Задание:Исследование следует проводить при варьировании а,b,R0. Найти при каких величинахa,b,R0получается наибольшая длинаLпоследовательности неповторяющихся чисел при “хороших” стохастических параметрах. Установить влияет ли величинаR0на качество датчика. Если влияет, то определить область “приемлемых” значений параметраR0. Представить результаты тестирования оптимального варианта значенийa,b,R0.
Мультипликативные алгоритмы. Датчик №2: Линейный конгруэнтный генератор Лемера 1951.
где Ui,M,Cиp–целые числа.
AmodB- остаток от деления нацелоAнаB,
A mod B =A-B*INT (A/B)
Генерируемая последовательность имеет повторяющийся цикл не превышающий pчисел.
Максимальный период получается при C0, но такой генератор даёт плохие стохастические результаты [3].
При C=0 генераторы называют мультипликативными. Они имеют лучшие стохастические параметры. Формулы их использования называют ещё методом вычетов.
Наиболее популярным для получения псевдослучайных чисел является метод вычетов по такой формуле [2]:
где Ui,M,p-целые числа, 0<Ri<1, 1Uip-1.
Если выбрать U0иMтакими, чтобы дляR0=U0/pполучалась несократимая дробь и взятьpиMвзаимно простыми, тогда всеRiбудут несократимыми дробями вида:Ri=Ui/p.
Получим наибольшую (но не более p) длину неповторяющейся последовательности чисел. ЗначенияU0,pиMудобно выбрать из простых чисел.
Задание:Исследовать при какихU0,pиMдлина последовательности неповторяющихся чисел будет не менее 10000 при «хороших» стохастических параметрах. Определить влияет ли величинаR0приMиp=constна статистические характеристики датчика. Если влияет, то определить область допустимых величинU0. Представить результаты тестирования генератора для оптимальных величинp,MиU0.
Датчик №3: Модификация Коробова [9].
где p- большое простое число, например 2027, 5087, …
М - целое число, отвечающее условиям:
n– целое число. Т.е. выбираемMблизким кp/2 из множества чиселM=p– 3n.
Например, для p=5087 берёмn=7. Потому что 37=2187, а 38=6561 будет уже большеp. Итак: М=5087-2187=2900.
Получаем числа Uiв интервале [1,p-1]=[1,5086] и числаRiв интервале (0,1).
Задание:ПодобратьMиpпри которых получаются лучшие статистические параметры датчика и наибольшая длинаL. Выяснить влияет ли величинаR0на стохастические характеристики датчика и, если влияет, то определить область допустимых значенийR0. Представить результаты тестирования датчика для оптимальных значенийM,pиR0.