Машинная имитация случайных последовательностей чисел
Автор: Dmitry • Сентябрь 22, 2023 • Лабораторная работа • 1,825 Слов (8 Страниц) • 114 Просмотры
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное
образовательное учреждение высшего образования
«Тульский государственный университет»
Институт прикладной информатики и компьютерных наук
Кафедра вычислительной техники
Отчет по лабораторной работе № 2
по дисциплине: «Основы моделирования систем»
на тему: «Машинная имитация случайных последовательностей чисел»
вариант № 26
Выполнил студент 3 курса группы: | |
Проверил к. т. н. доцент кафедры ВТ: |
Тула 2023
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 3
Ход работы 4
ЗАКЛЮЧЕНИЕ 9
Приложении А Исходный код программы 10
ВВЕДЕНИЕ
Целью работы является написание генераторов псевдослучайных чисел с последующим анализом их равномерной распределенности с помощью метода хи-квадрата.
Объектами исследования в лабораторной работе являются два генератора случайных чисел:
Первый генератор случайных чисел построен на основе смешанного конгруэнтного метода и реализован как класс «URAND». Для получения случайных чисел используется обращение «URAND.Next()».
В качестве второго генератора случайных чисел используется встроенная в язык C# библиотека «Random». Для получения случайных чисел используется обращение к экземпляру класса «random.NextDouble()».
Предметом исследования является равномерное распределение случайных чисел в интервале [0, 1].
Ход работы
Первый датчик генератор случайных чисел построен на основе смешанного конгруэнтного метода его работа основана на использовании формулы 1.
[pic 1]
где: a, c, m- константы, обычно автоматически вычисляемые в подпрограмме.
На основе этого алгоритма разработана процедура URAND. Грин, Смит и Клем предложили аддитивный конгруэнтный метод, основанный на использовании рекуррентной формулы 2.
[pic 2]
Алгоритм смешанного конгруэнтного метода представлен на рисунке 1.
[pic 3]
- Алгоритм смешанного конгруэнтного метода
Второй датчик генератор случайных чисел построен на основе мультипликативного конгруэнтного метода и представляет собой арифметическую процедуру для генерирования конечной последовательности равномерно распределённых чисел формула 3.
[pic 4]
где: a и m - неотрицательные целые числа.
Согласно этому выражению, мы должны взять последнее случайное число Xi, умножить его на постоянный коэффициент a и взять модуль полученного числа по m (т.е. разделить на aXi и остаток считать, как Xi+1). Поэтому для генерирования последовательности чисел Xi необходимы начальное значение X0, множитель a и модуль m. Эти параметры выбирают так, чтобы обеспечить максимальный период и минимальную корреляцию между генерируемыми числами.
Алгоритм мультипликативного конгруэнтного метода представлен на рисунке 2.
[pic 5]
- Алгоритм мультипликативного конгруэнтного метода
Использование критерия хи-квадрат для оценки близости полученного с помощью генератора распределения чисел к равномерному сводиться к следующим действиям:
Весь диапазон чисел [0,1] разбивается на k интервалов.
Статистика хи-квадрат определяется формулой 4.
[pic 6]
где: fj-наблюдаемая частота для каждого интервала; f-ожидаемая частота для каждого интервала (fe=p*N, N-число опытов, p – вероятность попадания).
Алгоритм расчета хи-квадрата представлен на рисунке 3.
[pic 7]
- Алгоритм расчета хи-квадрата
Для оценки близости распределения случайно сгенерированных чисел необходимо получить N случайных чисел и распределить их на K меньших интервалов для этого можно воспользоваться формулой 5.
[pic 8]
где: J – номер интервала; K – количество интервалов; X – случайно сгенерированное число.
Исходный код разработанной программы представлен в Приложении А.
Результаты выполнения написанной программы с анализом генератора случайных чисел «URAND» представлен на рисунке 4.
[pic 9]
- Результаты выполнения для «URAND»
Из результатов работы программы видно, что средняя оценка хи-квадрата равна 19,156
...