Мы называем эти числа псевдослучайными потому, что фактически они остаются полностью детерминированными в том смысле, что если каждое обращение к соответствующей формуле (точнее, к алгоритму) начинается с одними и теми же исходными данными (константами и начальными значениями), то на выходе получаются одинаковые последовательности чисел R.
В настоящее время почти все стандартные библиотечные программы вычисления равномерных случайных чисел основаны на конгруэнтных 1 методах, разработанных Лемером.
Основная формула мультипликативного конгруэнтного метода Лемера имеет вид:
+1 = aRi(mod m), (5)
где а и m - неотрицательные целые числа.
Согласно этому выражению, нужно взять случайное число Ri, умножить его на постоянный коэффициент а и взять модуль полученного числа по m (т.е. разделить на аRi и остаток считать как Ri+1). Поэтому для вычисления (или генерирования) последовательности Ri нам необходимы начальные значения R0, множитель а и модуль m. Выбираются а, R0 и m так, чтобы обеспечить максимальную длину (или, как говорят период) неповторяющейся последовательности Ri и минимальную корреляцию между генерируемыми числами. Базовые случайные числа позволяют генерировать новые случайные последовательности, подчиняющиеся любому закону распределения. [5]
Существует два основных пути преобразования базовых случайных чисел {Ri}, в случайные числа {yi}, распределенные по заданному закону распределения.
Один из них, который называется методом инверсии, состоит в реализации определенных арифметических операций над базовым числом Ri, чтобы получить уi.
Второй метод основывается на моделировании условий соответствующей предельной теоремы теории вероятностей. Кроме указанных двух основных подходов можно также выделить эвристические способы генерирования случайных чисел. Псевдослучайные числа могут быть использованы в качестве исходного материала для моделирования любых вероятностных объектов (случайные события и связанные с ними процессы).
Пусть событие а имеет вероятность р(а), тогда процедура его моделирования с помощью равномерного распределения (0,1) чисел производится следующим образом:
· Выбирается очередное случайное число равномерно - распределенное.
· Проверка неравенства Xi≤p(a), устанавливается принадлежность X ε (0,p(a)]. Если неравенство выполнено, то событие а - наступило, в противном случае нет.
Аналогично выглядит процедура распределения дискретной величины с заданным законом распределения. Известен закон распределения случайной величины.
=(a1,a2,an)(p1,p2,pn)
а1, а2, … - дискретные величины р1, р2, … -вероятность дискретных величин
Разобьем (0,1) на n-интервалов, причем длины интервалов выберем равные
вероятностям дискретных величин.
Моделирование сводится к следующему: для получения очередного значения Z, разрабатывается равное значение Xi , при попадании этого числа в j-интервал значение Z=Zi.
Все разнообразие методов получения случайных величин можно разделить на 2 группы: точные и приближенные методы. [1]
Пусть равномерно-распределенная величина в интервале [0;1] - X, получается из случайной величины Y с помощью неслучайной f-x=η(y), тогда очевидно следующее равенство: P(x<X, x+dx)=P(y<Y, y+dy). Выражая левую и правую часть через соответствующие плотности распределения получают:
=f(y)*dy =>
По определению
первообразная, f(y) - интегральная функция распределения
случайной величины у.
Найдем функцию η(y) совпадающую с интегральным законом: η(y)=F(y)
Для получения очередного значения yi случайной величины Y
рассмотренной в интервале (а,в), с законом распределения -f(y) соответствующему
значению xi, необходимо решить уравнение.
.
Подобная методика находит ограниченное применение, в связи с двумя обстоятельствами:
. Для многих законов распределения интеграл правой части распределения в конечном виде не берется
. Даже если удается взять интеграл правой части в конечном виде, то
формулы получаются слишком громоздкими, требующих больше затрат машинного
времени. [1]
Глава 2. Проектная часть
.1 Диаграмма использования
Диаграммы использования были предложены Иваром Якобсоном в их нынешней графической форме еще в 1986 году. Диаграммы использования являются, безусловно, самым стабильным элементом UML - они не менялись уже двадцать лет с лишним, фактически, приняли законченную форму задолго до появления языка. Одновременно эти диаграммы имеют самую простую нотацию: всего два основных типа сущностей (действующие лица и варианты использования), а также 4 четыре типа отношений, устанавливаемых между ними:
· ассоциация между действующим лицом и вариантом использования 3;
· обобщение между действующими лицами 4;
· обобщение между вариантами использования 5;
· зависимости (различных типов) между вариантами использования. [2]
В данной диаграмме использования показано взаимодействие и функции всех составляющих лиц ресторана.
Актеры (действующие лица) диаграммы:
) Посетитель
) Официант
) Дежурный
) Менеджер
· Просмотреть меню;
· Выбрать заказ;
· Изменить заказ;
· Оплатить.
Рис.2.1. Диаграмма вариантов использования для ресторана
Дежурный имеет право:
· Встретить;
· Посадить.
Официант имеет право:
· Принести меню;
· Принести заказ;
· Изменить заказ;
· Обслужить;
· Выписать счет;
· Принять оплату.
Менеджер владеет правами дежурного и официанта, случаи их отсутствия.
.2 Диаграмма классов
Диаграмма классов служит для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования. Диаграмма классов может отражать, в частности, различные взаимосвязи между отдельными сущностями предметной области, такими как объекты и подсистемы, а также описывать их внутреннюю структуру и типы отношений.
Диаграмма классов представляет собой граф, вершинами которого являются элементы типа «классификатор», связанные различными типами структурных отношений. Диаграмма классов может также содержать интерфейсы, пакеты, отношения и даже отдельные экземпляры, такие как объекты и связи. Класс в языке UML служит для обозначения множества объектов, которые обладают одинаковой структурой, поведением и отношениями с объектами других классов. Графически класс изображается в виде прямоугольника, который дополнительно может быть разделен горизонтальными линиями на разделы или секции. В этих разделах могут указываться имя класса, атрибуты (переменные) и операции (методы).
Строка-свойство служит для указания значений атрибута, которые не могут быть изменены в программе при работе с данным типом объектов. Фигурные скобки обозначают фиксированное значение соответствующего атрибута для класса в целом, которое должны принимать все вновь создаваемые экземпляры класса без исключения. Это значение принимается за исходное значение атрибута, которое не может быть переопределено в последующем.
Операции или методы класса записываются в третьей сверху секции
прямоугольника. Операция представляет собой некоторый сервис, предоставляемый
каждым экземпляром класса по определенному требованию. Совокупность операций
характеризует функциональный аспект поведения класса. Запись операций класса в
языке UML также стандартизована и подчиняется определенным синтаксическим
правилам.
Рис.2.2 Диаграмма классов
В данной диаграмме классов показаны методы и операции классов, а так же
их взаимодействия и подчиненность.
Заключение
(англ. Unified Modeling Language - унифицированный язык моделирования) - язык графического описания для объектного моделирования в области разработки программного обеспечения. UML является языком широкого профиля, это - открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемой UML-моделью. UML был создан для определения, визуализации, проектирования и документирования, в основном, программных систем. UML не является языком программирования, но на основании UML-моделей возможна генерация кода.
В процессе выполнения данной работы мною был проведен анализ языка моделирования UML, а также процесс создания моделей и диаграмм на данном языке.
Работа состоит из 2 глав:
. В первой главе рассматривается сам язык моделирования UML, а именно характеристика языка, история создания, его структура, а также моделирование случайной величины с заданным законом распределения.
. Проектная часть была посвящена созданию UML-модели прихода и обслуживания посетителей в
ресторане. В данной главе я построил диаграмму классов и использования.
Список использованной литературы
1. Ларман К. Применение UML 2.0 и шаблонов проектирования = Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. - 3-е изд. [Текст] / К. Ларман - М.: Вильямс, 2011. - 736 с.
2. Новиков Ф.А. Анализ и проектирование на UML. [Текст] / Ф.А. Новиков - СПб: СПбГУ ИТМО, 2010. - 448 с.
3. Шеннон Р. Имитационное моделирование систем - искусство и наука. [Текст] / Р. Шеннон - М.: Мир. 2010. - 210 с.
4. Образовательный сайт Exponenta.
. Свободная интернет - энциклопедия.
6. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. 2-е изд. [Текст] / Г. Буч - М.: Издательство Бином, СПб.: Невский диалект, 2012- 123 стр.
7. Рамбо Дж., Язык UML. Руководство пользователя. [Текст] / Дж. Рамбо, А. Джекобсон- М.: ДМК, 2012. - 621 с.
. Вендров А.М. CASE-технологии. Современные методы и средства проектирования информационных систем. [Текст] / А.М. Вендров - М.: Финансы и статистика, 2012. - 65 с.
. Вендров А.М. Проектирование программного обеспечения экономических информационных систем. [Текст] / А.М. Вендров - М.: Финансы и статистика, 2012. - 234 с.
. Влиссидес, Дж. Приемы объектно-ориентированного проектирования. [Текст] / Дж. Влиссидес - М.: ДМК, 2010. - 156 с.
. Гома Х. UML. Проектирование систем реального времени, распределенных и параллельных приложений. [Текст] / Х. Гома - М.: ДМК, 2012. - 438с.
. Коберн А. Современные методы описания функциональных требований к системам. [Текст] / А. Коберн - М.: ЛОРИ, 2011. - 58с.
. Коналлен, Д. Разработка Web-приложений с использованием UML: Пер. с англ. [Текст] / Д. Коналлен - М.: Вильямс, 2010. - 150 с.
. Коуд, П., Норт Д., Мэйфилд М. Объектные модели. Стратегии, шаблоны и приложения. [Текст] / П. Коуд, Д. Норт, М, Мэйфилд- М.: Вильямс, 2013. - 376 с.