|
Лабораторная работа № 2
Тема: Моделирование и обработка вероятностных событий, связанных и имитацией игры в кости.
Постановка задачи:
Составить программу, которая моделирует бросание пары игральных костей и реализует имитацию игры в кости с учетом того, что кости могут быть не с симметричными гранями.
Основные требования:
В процессе выполнения лабораторной работы необходимо выполнить следующее:
1. Разработать алгоритм и написать программу, реализующую имитатор бросания пары костей с равновероятными и разновероятными выпадениями граней.
2. По схеме случаев вычислить теоретические и эмпирические вероятности событий появления граней при бросании костей.
3. Имитация игры должна быть реализована в двух режимах:
- в ручном режиме (например, бросание кости по нажатию определенной клавиши);
- в автоматическом режиме (производится моделирование бросания кости с сохранением результатов, объем выборки от 10000 до 50000);
4. Для выбора режимов работы моделирующей программы организовать меню.
5. Моделирующая программа должна быть написана с обязательным использованием принципов ООП. В качестве объекта (класса) обязательно должен быть описан такой объекты как игральная кость.
6. Работа реализованного имитатора игры должна быть проанализирована с помощью статистического критерия «Хи-квадрат».
7. Для наглядного отображения полученной информации необходимо предусмотреть вывод полученной статистической информации в табличном и графическом виде. Предусмотреть возможность построения следующих графиков:
- построение графика теоретического полигона частот результата игры и гистограммы частот практических результатов игры, полученных в ходе проведенного имитационного эксперимента для заданного количества опытов.
Критерий «Хи-квадрат» рассчитывается по формуле:
, (2.1)
где n – заданное число опытов, pi, pi* - теоретические и эмпирические вероятности соответственно, k - количество исходов игры.
При выполнении работы моделирование каждого из «кубиков» формируется в виде объекта, основными свойствами которого являются:
1. Количество граней «кубика».
2. Вероятность выпадения каждой грани.
При этом надо помнить. что обязательно должно выполняться следующее условие:
, (2.2)
где k – количество граней кости, pi – вероятность выпадения i-ой грани.
Методами объекта «кубик» будут являться:
1. Инициализация «кубика» с равновероятными гранями.
2. Инициализация «кубика» с разно вероятными гранями.
3. Задание (изменение) вероятности выпадения i-ой грани.
4. Проверка корректности задания вероятностей, то есть в обязательном порядке должно выполняться требование, заданное формулой 1.2. Для этого вероятность выпадения старшей грани необходимо рассчитать по формуле:
, (2.3)
Для моделирования «кубика» можно применить единичный вектор – орт, на котором в порядке старшинства номера отложены вероятности выпадения каждой из граней. Это же можно представить в виде колеса рулетки, разделенного на сектора, где площадь каждый сектора будет равна вероятности выпадения той или иной грани, а общая площадь равна единицы. При этом моделирование выпадения той или иной грани сводится к тому, что необходимо получить случайное вещественное число в диапазоне от 0 до 1 подчиняющееся нормированному равномерному закону распределения, которое сопоставляется с единичным вектором, разбитым в нашем случае на k интервалов (граней «кубика»). Номер интервала в котором окажется сгенерированное случайное число и будет отождествляться с результатом броска «кубика».
Расчет теоретической вероятности результатов игры, производится согласно классической схемы подсчета вероятности появления какого либо события, а именно:
, (2.4)
где m – число благоприятный исходов, а n – общее число исходов.
Если учесть, что каждый исход имеет свою вероятность проявления, то при разработке алгоритма расчета теоретической вероятности исходов игры производим следующие допущения: Пусть 1-й «кубик» имеет k1 граней, вероятности выпадения которых отражены в массиве v1[k1], а 2-й «кубик» имеет k2 граней, вероятности выпадения которых отражены в массиве v2[k2]. Теоретические вероятности игры пусть будут представлены массивом tv[2..k1+k2], в котором количество элементов будет k1+k1-1, а индекс 1-го элемента – 2.
Для имитации броска «кубика» необходимо заполнить для каждого из объектов массив границ отрезков, имитирующих вероятность выпадения той или иной грани. Это может быть как двумерный массив размерностью k x 2, так и одномерный массив размерностью k+1. При этом необходимо помнить, что для двумерного массива v[1,1]=0, v[k,2]=1, v[i+1,1]=v[i,2], а для одномерного массива v[1]=0, v[k+1]=1.
Варианты заданий:
№ варианта | Количество граней | Доминирующая грань 1-го кубика | Доминирующая грань 2-го кубика | |||
1-й кубик | 2-й кубик | Грань | Значение | Грань | Значение | |
0,5 | 0,5 | |||||
0,1 | 0,5 | |||||
0,25 | 0,4 | |||||
0,6 | 0,3 | |||||
0,75 | 0,5 | |||||
0,25 | 0,7 | |||||
0,15 | 0,6 | |||||
0,1 | 0,5 | |||||
0,4 | 0,1 | |||||
0,5 | 0,8 | |||||
0,4 | 0,6 | |||||
0,5 | 0,4 | |||||
0,5 | 0,5 | |||||
0,3 | 0,7 | |||||
0,6 | 0,5 | |||||
0,5 | 0,4 | |||||
0,4 | 0,7 | |||||
0,3 | 0,5 | |||||
0,2 | 0,2 | |||||
0,6 | 0,3 | |||||
0,25 | 0,4 | |||||
0,15 | 0,6 | |||||
0,8 | 0,7 | |||||
0,2 | 0,5 | |||||
0,5 | 0,25 |
Дата добавления: 2015-10-21; просмотров: 35 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
Создание простейшей программы на языке Visual С++ | | | 1. Программа, вычисляющая квадратный корень модуля вещественного числа в формате «10.3» и сравнивающая результат с нулем. |