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