Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Методические указания к реализации датчиков случайных чисел ⇐ ПредыдущаяСтр 4 из 4
Для моделирования работы описанной в задании ПрО необходимо иметь возможность получать псевдослучайные числа в различными распределениями вероятностей. Среди них есть как дискретные, так и непрерывные. Реализация нужного датчика случайных чисел основывается на использовании встроенной функции Qt
int qrand(); (или int rand();для С++) Она возвращает целое число, равномерно распределенное на сегменте [0,RAND_MAX]. Особенности использования qrand: 1. При каждом запуске программы последовательность возвращаемых с помощью qrand псевдослучайных чисел будет одна и та же. Для исключения с некоторой вероятностью повторяемости при запуске программы необходимо выполнить в цикле вызов qrand. Параметром цикла может быть, например, количество миллисекунд времени старта программы. Тогда с вероятностью 0.001 используемая начальная последовательность не повторится. 2. Используется qrand не непосредственно, а как (double)random()=(double)qrand()/RAND_MAX, в результате чего последовательность приводится к диапазону [0,1].
Реализация дискретных распределений вероятностей
Событие с вероятностью P. Вычисляется r = random(), если r < P (или r ≤ P – почему можно так?), то считается, что событие произошла. Если условие не выполняется, то считается, что событие не наступило (произошло противоположное событие).
Полная группа N несовместных событие с вероятностями P1, P2, … , PN, где P1+P2+ … +PN = 1. Вычисляется последовательность: Q1 = P1, Q2 = Q1 + P1, … QN-1 = QN-2 + PN-1, Вычисляется число r = random(). Оно r последовательно сравнивается с Qi (r < Qi или r ≤ Qi). При первом выполнении условия считается, что произошло событие i. Если все условие не выполнились, то считается, что наступило событие N.
Реализация непрерывных распределений вероятностей
В заданиях для непрерывных распределений используется только экспоненциальное, так как понятие простейшего потока однозначно связано с ним. А именно, интервал времени между событиями простейшего потока событий имеет экспоненциальное распределение. Общий принцип генерации псевдослучайных чисел, распределенных по закону с функцией распределения вероятностей F(x) состоит в следующем: Равномерное распределение вероятностей в диапазоне [A,B]:
rравн = A + (B-A)*random() Экспоненциальное распределение вероятностей со средним значением T (или интенсивностью λ = 1/Т):
rэксп = -T*log(random()) = -log(random())/λ
|
||
Последнее изменение этой страницы: 2018-05-10; просмотров: 255. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |