Задание
Курсовая работа по дисциплине
"Основы программирования"
Для студентов 1 курса
направление подготовки "Техническая Физика"
Тема курсовой работы: Генераторы случайных чисел
Указания:
Теоретическая часть
При выполнении курсовой работы следует самостоятельно изучить следующие вопросы:
- Что такое случайные и псевдослучайные числа, используемые в программировании.
- Где и как применяются случайные и псевдослучайные числа в программировании.
- Основные требования к программным генераторам случайных (псевдослучайных) чисел.
- Основные компьютерные алгоритмы генерирования (образования) случайных (псевдослучайных) чисел - обзорно.
- Основные способы проверки (тестирования) последовательностей случайных чисел - обзорно.
Практическая часть
Тестирование последовательности случайных чисел
Цель - построить график распределения случайной последовательности (частоты встречаемости).
Задание. Имеется генератор псевдослучайных чисел, возвращающий случайные числа в диапазоне от до . Использовать встроенный в C# генератор.
Создаем массив из целых чисел: -й элемент массива показывает сколько раз было сгенерировано случайное число в диапазоне
от до ,
где
,
принимает значения от .
Начальное значение каждого элемента массива равно нулю ().
Генерируем случайное число . Находим номер элемента массива , соответствующий случайному значению : должно выполниться условие
.
Элемент массива увеличиваем на 1:
.
Повторяем операцию для нового случайного числа. Всего необходимо выполнить повторов. При этом число повторов должно быть в несколько раз больше числа элементов массива .
Массив сохраняем в файл. К отчету представляется гистограмма - график зависимости частоты встречаемости числа от значения этого числа. По оси ординат - значение , по оси абсцисс - сколько раз выпало случайное число в заданном диапазоне, то есть .
Построить графики для разных значений при одинаковых , и .
В текст курсовой работы включается описание алгоритма с блок-схемой и полученные графики.
Генератор псевдослучайных чисел
Цель - написать программу для генерации псевдослучайных чисел.
Задание. Написать функцию для генерации случайных чисел одним из известных методов. Это может быть генератор псевдослучайных чисел с равномерным распределением. Можно использовать линейный конгруэнтный метод либо любой другой метод, выбранный в результате изучения теоретической части. С другой стороны, это может быть генератор псевдослучайных чисел с экспоненциальным, гауссовым или другим распределением (по выбору студента на основе изученной теории). При построении генератора с заданным распределением в качестве генератора с линейным распределением можно использовать системный (встроенный в C#) генератор случайных чисел.
Для каждого студента выбор генератора случайных чисел согласуется с преподавателем.
К отчету представляется описание генератора, алгоритма программы, блок-схема и анализ генератора в соответствии с первым заданием.