1. Введение.
1.1. Цель работы.
Овладение навыками алгоритмизации и программирования задач с использованием датчиков случайных чисел, способами получения случайных чисел с различными законами распределения, навыками оценки качества псевдослучайных чисел и их соответствия заданному закону распределения.
1.2. Задания для самостоятельной подготовкиИзучить:
способы получения случайных чисел с различными законами распределения;
-способы использования в программах обращений к функциям или подпрограммам для получения псевдослучайных чисел с различными законами распределения;
способами использования случайных чисел для моделирования.
Разработать алгоритм решения в соответствии с заданием.
Составить программу решения задачи.
Подготовить тестовый вариант программы и исходных данных.
1.3. Задание к работе1. Выполнить на ЭВМ программу в соответствии со следующим заданием:
Сгенерировать последовательность из 50 случайных чисел с нормальным законом распределения а=5,=4) и последовательность из 50 случайных чисел с экспоненциальным законом распределения с параметром =5. Все числа свести в массив, расположив их по возрастанию. Вычислить среднее значение, дисперсию и вывести результаты на печать в виде гистограммы, разбив последовательность чисел на десять интервалов
2. Проверить правильность выполнения программы с помощью тестового варианта.
2. Руководство программиста.
Прежде, чем приступить к самому процессу алгоритмизации и программирования заглянем в теорию, по которой, собственно, и дано задание.
2.1. Теоретическая база.
2.1.1. Нормальное распределение.
Н
ормальным
называют
распределение
вероятностей
непрерывной
случайной
величины, которое
описывается
плотностью
Мы видим, что нормальное распределение определяется двумя параметрами: а и . Достаточно знать эти параметры, чтобы задать нормальное распределение. Покажем, вероятностный смысл этих параметров таков: а есть математическое ожидание, —среднее квадратическое отклонение нормального распределения.
2.1.2 Показательное (экспоненциальное) распределение.
П
оказательным
(экспоненциальным)
называют
распределение
вероятностей
непрерывной
случайной
величины X, которое
описывается
плотностью
где - постоянная положительная величина.
Мы видим, что показательное распределение определяется одним параметром . Эта особенность показательного распределения указывает на его преимущество по сравнению с распределениями, зависящими от большего числа параметров. Обычно параметры неизвестны и приходится находить их оценки (приближенные значения); разумеется, проще оценить один параметр, чем два или три и т. д. Примером непрерывной случайной величины, распределенной по показательному закону, может служить время между появлениями двух последовательных событий простейшего потока.
2.2. Начало алгоритмизации.
Для получения двух последовательностей из 50 случайных чисел с показательным и нормальным законами распределения необходимо организовать цикл, который будет выполнятся 50 раз. Внутри цикла будем пользоваться функцией из Турбо Паскаля random(a) - эта функция выдает произвольное число из интервала от 1 до a, a65535. Каждое полученное число будет вносится в массив, причем первые 50 элементов этого массива получены по нормальному закону, а другие 50 - по показательному.
Для упорядочивания массива случайных величин создадим двойной цикл. Для расчета мат. ожидания и дисперсии упорядоченного массива также создадим двойной цикл, с учетом того, что массив уже надо разбить на 10 частей и расчет проводить по каждому из промежутков. Для построения гистограммы воспользуемся средствами модуля Graph.tpu.
Блок-схемой основной программы будет приведена в приложении. Также в приложении будут размещщены блок-схемы подпрограмм-процедур, используемых в данной программе.
Перед процессом программирования составим таблицу используемых в программе и подпрограммах таблицу переменных и констант.
Таблица 1. Описание переменных и констант.
Имя переменной | Назначение | Тип в Turbo Pascal |
i.j | Переменные циклов. | Byte |
help,work,button | Переменный для хранения параметров вызова процедур. | Byte |
actionprog,action | Символьные переменные для управления интерфейсной частью .основной программы и процедур соответственно. | Char |
exitpar,exitmenu,exitprog | Логические параметры, задающие выход из процедур и основной программы. Позволяют делать программу болле гибкой в применении. | Boolean |
grmode,grdriver | Переменные, содержащие данные о типе графического драйвера и его режиме работы. Установленны в программе на автоматическое определение. | Integer |
Dat(3) | Массив для хранения входных данных в программе. Начальное знаачение [5,4,5]. | array[1..3]of real |
Posle(100) | Массив для хранения элементов генерируемой последовательности. | array[1..100] of real |
Xcor(3),Ycor(3) | Массивы, используемые для более компактности ввода параматров генерации последовательности в процедуре DoWorkс параметром work=1. | array[1..3]of byte |
Mat(10),Disp(10) | Массивы с данными о дисперсии и мат.ожидании по промежуткам последовательности. | array[1..10]of real |
mat0,disp0 | Мат.ожидание и дисперсия по всей последовательности. | Real |
X | Временная переменная (буфер). | Real |
Col(4) | Массив для управления выбора пункта меню. | array[1..4]of byte |
Light.Dark | Константы для задания цветов меню. | [1..16] |
... получаются экспериментальная и теоретическая зависимости P (j, l), сходимость которых проверяется по известным критериям, причем проверку целесообразно проводить при разных значениях l и р, 0 < р < 1. 7. Генератор случайных чисел в Borland C++ В языке C, как и во многих других языках высокого уровня, существует встроенная поддержка генератора случайных чисел. Для формирования чисел ...
... данных будет нести больше смысла, если его отсортировать каким‑либо образом. Часто требуется сортировать данные несколькими различными способами. Во‑вторых, многие алгоритмы сортировки являются интересными примерами программирования. Они демонстрируют важные методы, такие как частичное упорядочение, рекурсия, слияние списков и хранение двоичных деревьев в массиве. Наконец, сортировка ...
... нужно выбрать в меню Справка, а для ознакомления с информацией о приложении выбрать О программе Заключение В ходе выполнения курсовой работы были рассмотрены и проанализированы основные методы генерирования псевдослучайных чисел: линейный конгруэнтный метод, метод Фибоначчи с запаздываниями, алгоритм Блюма, Блюма и Шуба, Вихрь Мерсенна. Для реализации в курсовой работе были выбраны: метод, ...
... системы осуществляется на этапе валидации. Валидация модели обычно выполняется на различных уровнях. Специальные методы валидации включают установление адекватности путем использования постоянных значений всех параметров имитационной модели или путем оценивания чувствительности выходов к изменению значений входных данных. В процессе валидации сравнение должно осуществляться на основе анализа как ...
0 комментариев