Получение на ЭВМ равномерно распределенных псевдослучайных чисел

Процесс моделирования на ЭВМ для генерации последовательностей псевдослучайных чисел, характеристика основных процедур. Сущность метода серединных квадратов, рекуррентного соотношения. Особенности мультипликативного способа. Тесты проверки "случайности".

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 05.09.2013
Размер файла 570,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Лабораторная работа

Получение на ЭВМ равномерно распределенных псевдослучайных чисел

Цель работы - изучение методов получения на ЭВМ равномерно распределенных псевдослучайных чисел и тестов проверки их качества.

Теоретические сведения

При моделировании систем на ЭВМ программная имитация случайных воздействий любой сложности сводится к генерированию некоторых стандартных (базовых) процессов и к их последующему функциональному преобразованию. Таким базовым процессом является последовательность чисел представляющих собой реализации независимых, равномерно распределенных на интервале (0,1) случайных величин . Но на ЭВМ невозможно получить идеальную последовательность случайных чисел потому, что на ней можно оперировать только с конечным множеством чисел. Кроме того, для получения значений x случайной величины используются формулы (алгоритмы). Поэтому такие последовательности, являющиеся по своей сути детерминированными, называются псевдослучайными.

Наибольшее применение в практике моделирования на ЭВМ для генерации последовательностей псевдослучайных чисел находят алгоритмы вида

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

Рассмотрим некоторые процедуры получения последовательностей равномерно распределенных псевдослучайных чисел.

Метод серединных квадратов

Пусть имеется 2n-разрядное число, меньшее 1

Возведем его в квадрат

а затем отберем средние 2n разрядов, которые и будут являться очередным числом псевдослучайной последовательности

Этому методу соответствует рекуррентное соотношение

(2)

где В [ * ] и Ц [ * ] означают соответственно дробную и целую часть числа в квадратных скобках.

Недостаток метода - наличие корреляции между числами последовательности, а в ряде случаев случайность вообще может отсутствовать. Кроме того, при некоторых i* может наблюдаться вырождение последовательности, т.е. xi = 0 при i i*.

Метод середины произведения

Метод является модификацией метода серединных квадратов и состоит в том, что два 2n-значных числа перемножаются и средние 2n цифр этого произведения принимаются в качестве следующего числа последовательности. Таким образом, если

то для получения числа хi+1 необходимо перемножить хi-1 и хi

а затем отобрать средние 2n цифр этого произведения

Данному методу соответствует рекуррентное соотношение

при заданных двух начальных числах х0 и x1.

Несмотря на то, что данный метод также имеет тенденцию к вырождению, но обеспечивает лучшее качество псевдослучайных чисел, чем у чисел, полученных с помощью метода серединных квадратов.

Мультипликативный метод

Широкое применение для получения последовательностей псевдослучайных равномерно распределенных чисел получили конгруэнтные процедуры генерации, которые могут быть реализованы мультипликативным либо смешанным методом. Конгруэнтные процедуры являются чисто детерминированными, т.к. описываются в виде рекуррентного соотношения, когда функция (1) имеет вид

где Xi, ,, М - неотрицательные целые числа. Раскрывая (2) получим

Если задано начальное значение Х0, множитель и аддитивная константа , то (5) однозначно определяет последовательность целых чисел {Xi}, составленную из остатков от деления на М, членов последовательности

Таким образом, для любого i 1 справедливо неравенство Xi<М. По целым числам последовательности {Xi} можно построить последовательность {хi}={Xi/М) рациональных чисел из единичного интервала (0,1).

Мультипликативный метод задает последовательность неотрицательных целых чисел {Xi}, не превосходящих М, по формуле

т.е. это частный случаи (4) при = 0.

Для машинной реализации наиболее удобна версия М = рg, где р - число цифр в системе счисления, принятой в ЭВМ, а g - число бит в машинном слове.

Алгоритм построения последовательности для двоичной машины М = рg сводится к выполнению следующих операций:

1) выбрать в качестве Х0 произвольное нечетное число;

2) вычислить коэффициент , где - любое целое положительное число;

3) найти произведение Х0, содержащее не более 2g значащих разрядов;

4) взять g младших разрядов в качестве первого числа последовательности X1, а остальные отбросить;

5) определить дробь из интервала (0, 1);

6) присвоить Х0 = X1;

7) вернуться к пункту 3.

В настоящее время библиотеки стандартных программ ЭВМ для вычисления последовательностей равномерно распределенных случайных чисел основаны на конгруэнтных процедурах. Последовательность, полученная по мультипликативному методу, хорошо удовлетворяет статистическим критериям проверки качества.

Методы проверки качества псевдослучайных чисел с равномерным законом распределения

Методы (в дальнейшем, тесты) проверки качества псевдослучайных чисел делятся на три группы:

а) тесты проверки "случайности" последовательности псевдослучайных чисел;

б) тесты проверки равномерности закона распределения;

в) тесты проверки независимости последовательности.

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

Пусть имеется - случайная величина, о законе распределения которой выдвигается некоторая гипотеза, Х - множество возможных значений . Разобьем Х на m попарно непересекающихся множеств X1, X2,... .Хm, таких, что

Выберем N независимых значении 1, 2,… N и обозначим через j количество значений Xj,. Очевидно, что математическое ожидание j равно Npj,, т.е. М[j]= Npj. В качестве меры отклонения всех j от Npj выбирается величина

При достаточно большом N величина хорошо подчиняется закону распределения 2 с (m -1) степенью свободы:

где -плотность распределения 2 с (m-1) степенью свободы.

С помощью формулы (8) при заданном уровне значимости (обычно = 0.95) можно определить нижнюю и верхнюю границы области возможного принятия гипотезы (доверительного интервала). Для этого нужно решить соответственно следующие уравнения:

где , .

В приложении А имеется таблица, в которой приведены решения уравнения

где х = или х = ,р = или р =,

Тесты проверки "случайности"

На практике обычно применяют два теста проверки "случайности": тест проверки серий и тест проверки частот и пар.

Тест проверки серий предусматривает разбиение случайных цифр в исследуемой последовательности на элементы двух родов - первого и второго.

Серией называется любой отрезок последовательности цифр, состоящий из следующих друг за другом элементов одного и того же рода. Например, если в последовательности цифр

и то цифры образуют серию первого рода длины k, цифры образуют серию второго рода длины l и цифры также образуют серию первого рода длины s-k-l. Иногда для удобства элементы серий первого рода обозначают знаками "-" (минус), а второго рода - знаками "+" (плюс). В этом случае рассматриваемая последовательность будет иметь такой вид:

Подсчитаем количество гl серий второго рода длины l в последовательности псевдослучайных цифр . Пусть l= 1, 2, .... m и - количество серий второго рода с l m + 1 (они объединяются в одну группу). Обозначим общее количество серий через

Величина с т степенями свободы вычисляется по формуле:

где

Если, с заданным уровнем значимости , значение попадает в доверительный интервал, то тест проверки серий удовлетворяется.

В практике встречается также другая разновидность теста проверки серий, когда к элементам серий первого рода относят цифры, меньшие 0.5, а к элементам серий второго рода-не меньшие 0.5.

При достаточно большом объеме выборки (практически при N 20) и уровне значимости = 0.95 нижний предел общего числа серий равен:

а нижний предел числа серий элементов первого и второго родов равен:

Максимальная длина серий не должна быть больше, чем

Тест проверки равномерности закона распределения

Данный тест строится на основе применения критерия согласия 2. Пусть имеется выборка псевдослучайных чисел в интервале (0, 1). Интервал (0, 1) изменения случайной величины разбивается на m интервалов хj, j = 1, 2, ..., m, очевидно, что xm, = 1, а нижняя граница первого интервала равна нулю. Обычно принимают m =10-20.

Далее производится определение вероятности рj попадания случайной величины в j-й интервал. Для равномерного на интервале (0, 1) закона распределения рj = хj - хj-1. Затем определяется величина j , j = 1, 2, ... ,m - число попаданий случайной величины в j-й интервал и подсчитывается величина распределенная по закону 2 c (m-1) степенью свободы.

По заданному уровню значимости путем решения уравнений (9) и (10) (с помощью таблицы, приведенной в приложении А) можно определить нижнюю и верхнюю границы доверительного интервала. Если подсчитанное значение не попадает в доверительный интервал, то гипотезу о равномерном законе распределения случайной величины следует отвергнуть.

Дополнительно можно подсчитать эмпирическое математическое ожидание

и эмпирическую дисперсию

и сравнить их с теоретическими значениями соответственно 0.5 и 1/12.

Для математического ожидания можно для заданного уровня значимости определить также доверительный интервал:

где определяется из уравнения:

Значения интеграла вероятностей Ф (х) приведены в приложении Б.

Полезно бывает сравнить также теоретическую функцию распределения Р(х) и теоретическую плотность распределения f(х) случайной величины с экспериментально полученными функцией распределения F*(x) и гистограммой частот. Известно, что для случайной величины, равномерно распределенной на интервале (0, 1):

По известной выборке из N значений случайной величины экспериментальная функция распределения F*(х) определяется следующим образом:

где SN(x) равно количеству значений < х.

Гистограмма частот, являющаяся аналогом плотности распределения, строится следующим образом. Весь интервал (xmin, xmax) от наименьшего значения xmin до наибольшего значения xmax полученной выборки случайной величины разбивается на q равных промежутков длины h. Затем определяется число значений j выборки, попавших в i-ый промежуток, после чего для каждого 1 i q строится прямоугольник с основанием на i-ом промежутке и высотой j/h. Полученный чертеж называется гистограммой частот или просто гистограммой. Отметим, что при таком построении площадь i-го прямоугольника равна h * (j/h) = j, т.е. числу значений случайной величины, попавших в i-ый промежуток, а площадь всей гистограммы равна объему выборки.

Тесты проверки независимости последовательности псевдослучайных чисел

В основе этих методов лежит представление полученных псевдослучайных чисел в качестве реализации дискретного стационарного случайного процесса х(t).

Для количественной оценки степени некоррелированности последовательности псевдослучайных чисел применяется способ, заключающийся в определении коэффициента корреляции между элементом последовательности и его номером 1:

Если при заданном уровне значимости

где - верхняя граница доверительного интервала, а z определяется из уравнения:

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

Порядок выполнения работы

Изучить методы получения на ЭВМ равномерно распределенных псевдослучайных чисел и тесты проверки их качества.

Составить программу получения на ЭВМ равномерно распределенных псевдослучайных чисел по заданному преподавателем методу и оценить качество лученных последовательностей по заданным преподавателем тестам.

Произвести анализ полученных результатов.

Таблица решений уравнения для распределения степенями свободы

0.99

0.98

0.95

0.90

0.80

0.70

0.50

0.30

0.0002

0.0006

0.039

0.016

0.064

0.148

0.455

1.07

0.20

0.40

0.103

0.211

0.446

0.713

1.386

2.41

0.115

0.185

0.352

0.584

1.005

1.424

2.366

3.66

0.30

0.43

0.71

1.06

1.65

2.19

3.36

4.9

0.55

0.75

1.14

1.61

2.34

3.00

4.35

6.1

0.87

1.13

1.63

2.20

3.07

3.83

5.35

7.2

1.24

1.56

2.17

2.83

3.82

4.67

6.35

8.4

1.65

2.03

2.73

3.49

4.59

5.63

7.34

9.5

2.09

2.53

3.32

4.17

5.38

6.39

8.34

10.7

2.56

3.06

3.94

4.86

6.18

7.27

9.34

11.8

3.1

3.6

4.6

5.6

7.0

8.1

10.3

12.9

3.6

4.2

5.2

6.3

7.8

9.0

11.3

14.0

4.1

4.8

5.9

7.0

8.6

9.9

12.3

15.1

4.7

5.4

6.6

7.8

9.5

10.8

13.3

16.2

5.2

6.0

7.3

8.5

10.3

11.7

14.3

17.3

5.8

6.6

8.0

9.3

11.2

12.6

15.3

18.4

6.4

7.3

8.7

10.1

12.0

13.5

16.3

19.5

7.0

7.9

9.4

10.9

12.9

14.4

17.3

20.6

7.6

8.6

10.1

11.7

13.7

15.4

18.3

21.7

8.3

9.2

10.9

12.4

14.6

16.3

19.3

22.8

0.20

0.10

0.05

0.02

0.01

0.005

0.002

0.001

1.64

2.7

3.8

5.4

6.6

7.9

9.5

10.83

3.22

4.6

6.0

7.8

9.2

11.6

12.4

13.8

4.64

6.3

7.8

9.8

11.3

12.8

14.8

16.3

6.0

7.8

9.5

11.7

13.3

14.9

16.9

18.5

7.3

9.2

11.1

13.4

15.1

16.3

18.9

20.5

8.6

10.6

12.6

15.0

16.8

18.6

20.7

22.5

9.8

12.0

14.1

16/6

18.5

20.3

22.6

24.3

11.8

13.4

15.5

18.2

20.1

21.9

24.3

26.1

12.2

14.7

16.9

19.7

21.7

23.6

26.1

27/9

13.4

16.0

18.3

21.2

23.2

25.2

27.7

29.6

14.6

17.3

19.7

22.6

24.7

26.8

29.4

31.3

15.8

18.5

21.0

24.1

26.2

28.3

31

32.9

17.0

19.8

22.4

25.5

27.7

29.8

32.5

34.5

18.2

21.1

23.7

26.9

29/1

31

34

36.1

19.3

22.3

25.0

28.3

30.6

32.5

35.5

37.7

20.5

23.5

26.3

29.6

32.0

34

37

39.2

21.6

24.8

27.6

31.0

33.4

35.5

38.5

40.8

22.8

26.0

28.9

32.3

34.8

37

40

42.3

23.9

27.2

30.1

33.7

36.2

38.5

41.5

43.8

25.0

28.4

31.4

35.0

37.6

40

43

45.3

моделирование псевдослучайный число мультипликативный

Таблица значений интеграла вероятностей

х

Ф(х)

х

Ф (х)

х

Ф (х)

0.00

0.0000

1.20

0.3849

2.40

0.4918

0.05

0.0199

1.25

0.3944

2.45

0.4929

0.10

0.0398

1.30

0.4032

2.50

0.4938

0.15

0.0596

1.35

0.4115

2.55

0.4946

0.20

0.0793

1.40

0.4192

2.60

0.4953

0.25

0.0987

1.45

0.4265

2.65

0.4960

0.30

0.1179

1.50

0.4332

2.70

0.4965

0.35

0.1368

1.55

0.4394

2.75

0.4970

0.40

0.1554

1.60

0.4452

2.80

0.4974

0.45

0.1736

1.65

0,4505

2.85

0.4978

0.50

0.1915

1.70

0.4554

2.90

0.4981

0,55

0.2088

1.75

0.4599

2.95

0.4984

0.60

0.2257

1.80

0.4641

3.00

0,4987

0.65

0.2422

1.85

0.4678

3.05

0.4989

0.70

0.2580

1.90

0,4713

3.10

0.4990

0.75

0.2734

1.95

0.4744

3.15

0.4992

0.80

0.2881

2.00

0.4773

3.20

0.4993

0.85

0.3023

2.05

0.4798

3.25

0.4994

0.90

0.3159

2.10

0.4821

3.30

0.4995

0.95

0.3289

2.15

0.4842

3.35

0.4995

1.00

0.3413

2.20

0.4861

3.40

0.4996

1.05

0.3531

2.25

0.4878

3.45

0.4997

1.10

0.3643

2.30

0,4893

3.50

0.4998

1.15

0.3749

2.35

0.4906

3.75

0.4999

Размещено на Allbest.ru

...

Подобные документы

  • Программа для формирования и просмотра команды для олимпиады по программированию. Генератор случайных чисел в Borland C++, методы их получения. Линейный конгруэнтный метод. Метод Фибоначчи, вихря Мерсенна. Тестирование псевдослучайных последовательностей.

    курсовая работа [93,5 K], добавлен 27.09.2014

  • Характеристика вероятностного алгоритма и особенности его использования. Принцип работы и назначение генератора случайных чисел, сущность псевдослучайных чисел. Рассмотрение и реализация метода середины квадрата, разработка алгоритма и его кодирование.

    курсовая работа [50,3 K], добавлен 18.09.2009

  • Основные подходы при создании Windows приложений. Изучение навыков работы с 2D графикой в Windows приложениях. Методы генерации псевдослучайных чисел. Разработка игры "Сапер" с расположением мин на основе нескольких методов генерации случайных чисел.

    курсовая работа [63,2 K], добавлен 18.02.2009

  • Формирование устойчивой последовательности псевдослучайных чисел с использованием метода "середины квадрата". Разработка программы для определения среднего значения чисел, среднего значения квадратов чисел и дисперсии для последовательности из 20 чисел.

    лабораторная работа [1,4 M], добавлен 21.01.2015

  • Написание программы для генерации случайных чисел, в которой реализуются возможности генерации абсолютно случайных чисел. Приложение на языке С/С++. Описание узла, содержащего данные; функций и методов работы; чтения данных из памяти и вывода их на экран.

    курсовая работа [172,4 K], добавлен 23.05.2012

  • Создание программного приложения для искажения графической информации в цифровом изображении и последующего ее восстановления. Декартово произведение множеств. Передача ключа шифрования. Генерация псевдослучайных чисел. Умножение, транспонирование матриц.

    курсовая работа [1,7 M], добавлен 07.09.2016

  • Секретные ключи как основа криптографических преобразований. Изучение особенностей aлгopитмoв гeнepaции двоичных псевдослучайных последовательностей. Pяды, пoлучaeмыe из пpoгpaммнoгo ключa. Пpocтeйшиe aлгopитмы гeнepaции. Paзpaбoткa и описание пpoгpaммы.

    курсовая работа [934,7 K], добавлен 25.06.2011

  • Разработка клиент-серверного приложения на основе TCP\IP соединения. Организация работы удаленного генератора псевдослучайных последовательностей. Описание основных функциональных модулей. Интерфейс пользователя, сетевое взаимодействие и алгоритм.

    курсовая работа [223,6 K], добавлен 18.10.2013

  • Разработка программы, моделирующей игру "Кости". Использование в программе генератора псевдослучайных чисел. Схема иерархии модулей. Описание работы программы. Регистрация игрока, окно программы. Определение языка программирования, основные операторы.

    курсовая работа [3,2 M], добавлен 29.07.2010

  • Преобразование чисел из естественной формы в нормализованную. Алгоритм нормализации числа. Способы кодирования чисел и действия над ними. Особенности прямого, дополнительного, смещенного и обратного кода. Понятие вещественных чисел, их представление.

    презентация [42,6 K], добавлен 14.06.2011

  • Анализ способов построения генераторов случайных чисел для криптографических задач. Анализ генератора случайных чисел на основе магнитометров. Анализ статистических свойств двоичных последовательностей, полученных путем квантования данных магнитометра.

    дипломная работа [2,5 M], добавлен 06.05.2018

  • Разработка автомата для шифрования фамилии и передачи ее по последовательному каналу передачи информации, используя в качестве устройства защиты датчик псевдослучайных чисел с последовательностью максимальной длины. Разработка автомата для дешифровки.

    курсовая работа [816,0 K], добавлен 24.07.2010

  • Симметричные и асиметричные методы шифрования. Шифрование с помощью датчика псевдослучайных чисел. Алгоритм шифрования DES. Российский стандарт цифровой подписи. Описание шифрования исходного сообщения асимметричным методом с открытым ключом RSA.

    курсовая работа [101,1 K], добавлен 09.03.2009

  • Выбор структуры класса больших целых чисел, их сравнительная характеристика и описание преимуществ, недостатков. Реализация метода перемножения двух больших чисел, возведения числа в степень и взятия факториала числа. Режим вычисления выражений.

    курсовая работа [827,2 K], добавлен 19.04.2011

  • Оптимальный алгоритм деления чисел в нормализованной форме для получения нормализованного произведения чисел с помощью TP Pascal. Работа со строковыми данными и типами Real и Integer. Описание метода решения. Блок-схема работы программы, ее листинг.

    курсовая работа [111,8 K], добавлен 28.07.2009

  • Программирование микро ЭВМ на МП БИС КР580ИК80. Арифметические команды. Представление чисел в различных системах счисления и отображение их на дисплее. Сложение массива однобайтных чисел. Вычитание одинаковых чисел. Сложение двух десятичных чисел.

    лабораторная работа [263,8 K], добавлен 03.03.2009

  • История возникновения, сущность и виды магических фигур. Анализ основных алгоритмов и путей компьютерной реализации заполнения магических квадратов, а также их значение при решении задач криптографии. Понятие и назначение дьявольских магических квадратов.

    дипломная работа [1,6 M], добавлен 19.11.2010

  • Двоичный код, особенности кодирования и декодирования информации. Система счисления как совокупность правил записи чисел с помощью определенного набора символов. Классификация систем счисления, специфика перевода чисел в позиционной системе счисления.

    презентация [16,3 K], добавлен 07.06.2011

  • Разработка программы обработки числовых последовательностей с кодом на языке Pascal. Функции ввода пользователем с клавиатуры последовательности целых чисел. Алгоритмы разработанных процедур и функций. Инструкция пользователя, листинг программы.

    курсовая работа [677,7 K], добавлен 13.07.2010

  • Понятие информационной безопасности и классификация ее угроз. Анализ работы симметричных систем криптографической защиты данных и основы нелинейного шифрования потока. Функционирование линейных конгруэнтных генераторов псевдослучайных последовательностей.

    дипломная работа [968,8 K], добавлен 01.07.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.