Лекция 23. Моделирование случайного события. Моделирование полной группы несовместных событий
Начнем с самого простого. Используем наше умение генерировать случайные числа для имитации выпадения случайных событий.
Случайное событие подразумевает, что у некоторого события есть несколько исходов и то, который из исходов произойдет в очередной раз, определяется только его вероятностью. То есть исход выбирается случайно с учетом его вероятности.
Например, допустим, что нам известна вероятность выпуска бракованных изделий Pб = 0.1 . Смоделировать выпадение этого события можно, разыграв равномерно распределенное случайное число из диапазона от 0 до 1 и установив, в какой из двух интервалов (от 0 до 0.1 или от 0.1 до 1) оно попало (см. рис. 23.1 ). Если число попадает в диапазон (0; 0.1) , то выпущен брак, то есть событие произошло, иначе событие не произошло (выпущено кондиционное изделие). При значительном числе экспериментов частота попадания чисел в интервал от 0 до 0.1 будет приближаться к вероятности P = 0.1 , а частота попадания чисел в интервал от 0.1 до 1 будет приближаться к Pк = 0.9 .
Рис. 23.1. Схема использования генератора случайныхчисел для имитации случайного события
Фрагмент алгоритма представлен на рис. 23.2 .
Рис. 23.2. Блок-схема алгоритмаимитации случайного события
Заметим, что не важно, как вы расположите на отрезке [0; 1] интервал Pб в начале или в конце, поскольку метод Монте-Карло учитывает только частоту попадания случайных точек в интервал, а она зависит только от величины интервала и не зависит от его месторасположения.
Моделирование полной группы несовместных событий
События называются несовместными , если вероятность появления этих событий одновременно равна 0. Отсюда следует, что суммарная вероятность группы несовместных событий равна 1.
Обозначим через a1 , a2 , , an события, а через P1 , P2 , , Pn вероятности появления отдельных событий.
Так как события несовместны, то сумма вероятностей их выпадения равна 1: P1 + P2 + + Pn = 1 .
Снова используем для имитации выпадения одного из событий генератор случайных чисел, значение которых также всегда находится в диапазоне от 0 до 1. Отложим на единичном интервале [0; 1] отрезки P1 , P2 , , Pn . Понятно, что в сумме отрезки составят точно единичный интервал. Точка, соответствующая выпавшему числу из ГСЧ на этом интервале, укажет на один из отрезков. Соответственно в большие отрезки случайные числа будут попадать чаще (вероятность появления этих событий больше!), в меньшие отрезки реже (см. рис. 23.3 ).
Рис. 23.3. Схема генерации несовместных случайных событийс помощью генератора случайных чисел
На рис. 23.4 показана блок-схема, которая реализует описанный алгоритм. Алгоритм определяет с помощью фильтра, построенного в виде последовательности условных операций (IF), в какой из интервалов от 0 до P1 , от P1 до (P1 + P2) , от (P1 + P2) до (P1 + P2 + P3) и так далее попало число, сгенерированное генератором случайных чисел. Если число попало в какой-то из интервалов (что произойдет всегда и обязательно), то это соответствует выпадению связанного с ним события.
Рис. 23.4. Блок-схема алгоритма имитации случайных несовместных событий
Пример с возможным исходом четырех несовместных случайных событий.
Промоделируем выпадение последовательности событий будем выбирать из колоды карт наугад карту (определять ее масть). Карты в колоду возвращать не будем.
В колоде 36 карт четырех мастей по 9 карт каждой масти. Интервал от 0 до 1 разделим на равные четыре части: [0.000.25] , [0.250.50] , [0.500.75] , [0.751.00] . Первая часть будет соответствовать картам масти червей (Ч), вторая картам масти пик (П), третья картам масти виней (В), четвертая бубей (Б).
Взять случайное равномерно распределенное число в интервале от 0 до 1 из таблицы случайных чисел или стандартного ГСЧ. Пусть, например, это будет число 0.597. Данное число попадает в третий интервал, соответствующий масти В. Произошло случайное событие: «Масть выпавшей карты В».
Поскольку теперь в колоде 9 карт масти Ч, 9 карт масти П, 8 карт масти В, 9 карт масти Б, то интервал от 0 до 1 будет разбит на отрезки длиной: 9/35, 9/35, 8/35, 9/35, то есть [0.0000.257] , [0.2570.514] , [0.5140.743] , [0.7431.000] . Разыграем случайное равномерно распределенное число в интервале от 0 до 1. Например, 0.321. Данное число попадает во второй интервал, соответствующий масти П.
Продолжая процесс, можно получить (в зависимости от конкретных случайных чисел), например, такую последовательность: ВПВЧБПЧ (в качестве иллюстрации см. рис. 23.5 ).