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

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Работа № 91181


Наименование:


Курсовик Алгоритмы получения последовательности псевдослучайных чисел

Информация:

Тип работы: Курсовик. Предмет: Программирование. Добавлен: 30.9.2015. Сдан: 2015. Страниц: 32. Уникальность по antiplagiat.ru: < 30%

Описание (план):


Содержание
Введение 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 27

Введение
Довольно часто программисты в своей работе встречаются с необходимостью работать со случайными числами. Чаще всего случайные числа требуются в задачах моделирования, численного анализа и тестирования, но существует и множество других весьма специфических задач.
Конечно, во всех современных языках программирования есть функция random или её аналоги. Эти функции чаще всего дают действительно хорошие псевдослучайные числа, но не всегда понятно, как эти функции работают.
Сразу стоит сказать, что есть смысл генерировать случайные числа только с равномерным законом распределения, т.к. все остальные распределения можно получить из равномерного путём преобразований, известных из теории вероятности.
В равномерно распределённой последовательности нулей и единиц нули в среднем будут встречаться в 50% случаев. Но это вовсе не значит, что в последовательности из 1000 цифр будет ровно 500 нулей. Более того, в последовательности из 1000 цифр может быть 999 нулей, и вероятность того, что тысячный элемент будет равен нулю по-прежнему остаётся равной 0.5. На первый взгляд это кажется парадоксальным, но важно понимать, что все последовательности равновероятны. Если же мы будем рассматривать достаточно большую совокупность таких последовательностей, то в среднем в каждой из них будет 500 нулей.
Целью данной курсовой работы является составление программы для реализации алгоритмов получения последовательности псевдослучайных чисел.
В ходе выполнения курсовой работы будут выполнены следующие задачи: изучение и анализ основных методов и подходов к генерации последовательностей псевдослучайных чисел: генерирование равномерно распределённых случайных чисел, получение псевдослучайных чисел на основе полиномиального счетчика (сдвигового регистра), линейный и нелинейный конгруэнтные методы, системно-теоретический подход на примере каскада Голлманна и альтернирующего (перемежающегося) Stop?and?Go генератора и сложно-теоретический подход на примере генераторов Blum?Micali, RSA и Blum Blum Shub (BBS); составление программы на языке программирования C# для реализации алгоритмов генерации последовательностей псевдослучайных чисел.

Глава 1. Генератор псевдослучайных чисел: понятие, области применения
1.1. Понятие и основные области применения ГПСЧ
Генератор псевдослучайных чисел (ГПСЧ, англ. Pseudorandom number generator, PRNG) - алгоритм, порождающий последовательность чисел, элементы которой почти независимы друг от друга и подчиняются заданному распределению (обычно равномерному).
Современная информатика широко использует псевдослучайные числа в самых разных приложениях - от метода Монте-Карло и имитационного моделирования до криптографии. При этом от качества используемых ГПСЧ напрямую зависит качество получаемых результатов.
Числа, которые выбираются случайным образом, находят множество полезных применений [5].
· Моделирование. При использовании компьютера для моделирования естественных явлений случайные числа нужны для того, чтобы сделать эти модели похожими на реальные явления. Моделирование применяется во многих областях, начиная от исследований в ядерной физике (где частицы испытывают случайные столкновения) и заканчивая исследованием операций (где люди прибывают, например, в аэропорт через случайные промежутки времени).
· Выборочный метод. Часто бывает невозможно исследовать все варианты, но случайная выборка обеспечивает понимание того, что можно назвать «типичным» поведением.
· Численный анализ. Для решения сложных задач численного анализа была разработана остроумная техника, использующая случайные числа. Об этом написано несколько книг.
· Компьютерное программирование. Случайные величины являются хорошим источником данных для тестирования эффективности компьютерных алгоритмов.
· Более важно то, что они играют решающую роль при использовании рандомизированных алгоритмов, которые часто намного превосходят своих детерминированных двойников.
· Принятие решений. Говорят, что многие администраторы принимают решения, бросая монету, игральную кость либо каким-нибудь другим подобным способом. Сплетничают, что некоторые профессора в колледжах ставят оценки, используя тот же метод. Иногда важно принять полностью «беспристрастное» решение.
· Случайность является также важной частью оптимальных стратегий в теории матричных игр.
· Эстетика. Небольшая добавка случайности оживляет музыку и компьютерную графику.
· Развлечения. Многие считают, что они замечательно проводят время, бросая игральные кости, тасуя колоду карт, вращая колесо рулетки и т. п. Такие традиционные способы использования случайных чисел получили название метод Монте-Карло. Это общее название всех алгоритмов, использующих случайные числа.

1.2. Основные виды ГПСЧ
1.2.1. Детерминированные ГПСЧ
Никакой детерминированный алгоритм не может генерировать полностью случайные числа, он может только аппроксимировать некоторые их свойства [5].
Любой ГПСЧ с ограниченными ресурсами рано или поздно зацикливается - начинает повторять одну и ту же последовательность чисел. Длина циклов ГПСЧ зависит от самого генератора и составляет около 2n/2, где n - размер внутреннего состояния в битах, хотя линейные конгруэнтные и LFSR-генераторы обладают максимальными циклами порядка 2n. Если порождаемая ГПСЧ последовательность сходится к слишком коротким циклам, то такой ГПСЧ становится предсказуемым и непригодным для практических приложений.
Большинство простых арифметических генераторов хотя и обладают большой скоростью, но страдают от многих серьёзных недостатков:
· Слишком короткий период/периоды.
· Последовательные значения не являются независимыми.
· Некоторые биты «менее случайны», чем другие.
· Неравномерное одномерное распределение.
· Обратимость.
В частности, алгоритм RANDU, десятилетиями использовавшийся на мейнфреймах, оказался очень плохим, что вызвало сомнения в достоверности результатов многих исследований, использовавших этот алгоритм.
Из современных ГПСЧ широкое распространение также получил «вихрь Мерсенна», предложенный в 1997 году Мацумото и Нисимурой. Его достоинствами являются колоссальный период (219937?1), равномерное распределение в 623 измерениях (линейный конгруэнтный метод даёт более или менее равномерное распределение максимум в 5 измерениях), быстрая генерация случайных чисел (в 2-3 раза быстрее, чем стандартные ГПСЧ, использующие линейный конгруэнтный метод). Однако, существуют алгоритмы, распознающие последовательность, порождаемую вихрем Мерсенна, как неслучайную.

1.2.2. ГПСЧ с источником энтропии
Наравне с существующей необходимостью генерировать легко воспроизводимые последовательности случайных чисел, также существует необходимость генерировать совершенно непредсказуемые или попросту абсолютно случайные числа. Такие генераторы называются генераторами случайных чисел (ГСЧ - англ. random number generator, RNG). Так как такие генераторы чаще всего применяются для генерации уникальных симметричных и асимметричных ключей для шифрования, они чаще всего строятся из комбинации криптостойкого ГПСЧ и внешнего источника энтропии (и именно такую комбинацию теперь и принято понимать под ГСЧ).
Почти все крупные производители микрочипов поставляют аппаратные ГСЧ с различными источниками энтропии, используя различные методы для их очистки от неизбежной предсказуемости. Однако на данный момент скорость сбора случайных чисел........



Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть похожие работы

* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.