Пример готовой курсовой работы по предмету: Программирование
Содержание
Введение 4
Глава
1. Генератор псевдослучайных чисел: понятие, области применения 5
1.1. Понятие и основные области применения ГПСЧ 5
1.2. Основные виды ГПСЧ 6
1.2.1. Детерминированные ГПСЧ 6
1.2.2. ГПСЧ с источником энтропии 7
1.2.3. Аппаратные ГПСЧ 7
Глава
2. Основные методы генерации псевдослучайных чисел 9
2.1. Генерирование равномерно распределённых случайных чисел 9
2.2. Получение псевдослучайных чисел на основе полиномиального счетчика (сдвигового регистра) 10
2.3. Конгруэнтные методы 12
2.3.1. Линейный конгруэнтный метод 12
2.3.2. Нелинейные конгруэнтные методы. 14
2.4. Системно-теоретический подход 14
2.4.1. Каскад Голлманна 15
2.4.2. Альтернирующий (перемежающийся) Stop‐and‐Go генератор 16
2.5. Сложно-теоретический подход 16
2.5.1. Генератор Blum‐Micali 16
2.5.2. Генератор RSA 18
2.5.3. Генератор Blum Blum Shub 18
Глава
3. Разработка программы для реализации алгоритмов получения последовательности псевдослучайных чисел 19
3.1. Составление алгоритмов для реализации 19
3.2. Написание программы на языке C# 21
3.3. Интерфейс программы 21
3.4. Тестирование, отладка и устранение ошибок программы 22
Заключение 24
Список литературы 25
Приложение 1 26
Приложение 2 2
Выдержка из текста
Довольно часто программисты в своей работе встречаются с необходимостью работать со случайными числами. Чаще всего случайные числа требуются в задачах моделирования, численного анализа и тестирования, но существует и множество других весьма специфических задач.
Конечно, во всех современных языках программирования есть функция random или её аналоги. Эти функции чаще всего дают действительно хорошие псевдослучайные числа, но не всегда понятно, как эти функции работают.
Сразу стоит сказать, что есть смысл генерировать случайные числа только с равномерным законом распределения, т.к. все остальные распределения можно получить из равномерного путём преобразований, известных из теории вероятности.
В равномерно распределённой последовательности нулей и единиц нули в среднем будут встречаться в 50% случаев. Но это вовсе не значит, что в последовательности из 1000 цифр будет ровно
50. нулей. Более того, в последовательности из 1000 цифр может быть
99. нулей, и вероятность того, что тысячный элемент будет равен нулю по-прежнему остаётся равной 0.5. На первый взгляд это кажется парадоксальным, но важно понимать, что все последовательности равновероятны. Если же мы будем рассматривать достаточно большую совокупность таких последовательностей, то в среднем в каждой из них будет
50. нулей.
Целью данной курсовой работы является составление программы для реализации алгоритмов получения последовательности псевдослучайных чисел.
В ходе выполнения курсовой работы будут выполнены следующие задачи: изучение и анализ основных методов и подходов к генерации последовательностей псевдослучайных чисел: генерирование равномерно распределённых случайных чисел, получение псевдослучайных чисел на основе полиномиального счетчика (сдвигового регистра), линейный и нелинейный конгруэнтные методы, системно-теоретический подход на примере каскада Голлманна и альтернирующего (перемежающегося) Stop‐and‐Go генератора и сложно-теоретический подход на примере генераторов Blum‐Micali, RSA и Blum Blum Shub (BBS); составление программы на языке программирования C# для реализации алгоритмов генерации последовательностей псевдослучайных чисел
Список использованной литературы
1. Долгов В.И. Криптографическая защита информации в АСУ СН. Курс лекций. ХВУ. 1998.
2. Долгов В.И. Теория информации. Курс лекций. ХВУ. 1998.
3. Горбенко И.Д. Криптографическая защита информации в информационных системах. Курс лекций. ХНУРЭ. 2002.
4. Кнут Д.Э. Искусство программирования, том
2. Получисленные алгоритмы. – 3-е изд. – М.: Вильямс, 2001. – 832 с.
5. Макконнелл Дж. Анализ алгоритмов. Активный обучающий подход. – 3-е изд. – М.: Техносфера, 2009. – 416 с.
6. Павловская Т.А. C#. Программирование на языке высокого уровня: учебник для вузов. — Спб: Питер, 2010. – 432 с.
7. Алгоритм Блюма – Блюма – Шуба – Википедия [Электронный ресурс].
– Режим доступа: http://ru.wikipedia.org/wiki/Алгоритм_Блюма_—_Блюма_—_Шуба
8. Алгоритм Блюма — Микали – Википедия [Электронный ресурс].
– Режим доступа: http://ru.wikipedia.org/wiki/Алгоритм_Блюма_—_Микали
9. Шнайер Б. Прикладная криптография. 2-ое издание. Протоколы, алгоритмы и исходные тексты на языке С[Электронный ресурс].
- Режим доступа: http://nrjetix.com/r-and-d/lecture