Привет, сегодня поговорим про моделирование случайного события, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое
моделирование случайного события, моделирование полной группы несовместных событий, решение задачи моделирование случайного события, имитация случайного события , настоятельно рекомендую прочитать все из категории Моделирование и Моделирование систем.
моделирование случайного события
Начнем с самого простого. Используем наше умение генерировать случайные числа для имитации выпадения случайных событий.
Случайное событие подразумевает, что у некоторого события есть несколько исходов и то, который из исходов произойдет в очередной раз, определяется только его вероятностью. То есть исход выбирается случайно с учетом его вероятности.
Например, допустим, что нам известна вероятность выпуска бракованных изделий 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 . Об этом говорит сайт https://intellect.icu . Отсюда следует, что суммарная вероятность группы несовместных событий равна 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.00—0.25], [0.25—0.50], [0.50—0.75], [0.75—1.00]. Первая часть будет соответствовать картам масти червей (Ч), вторая — картам масти пик (П), третья — картам масти виней (В), четвертая — бубей (Б).
Взять случайное равномерно распределенное число в интервале от 0 до 1 из таблицы случайных чисел или стандартного ГСЧ. Пусть, например, это будет число 0.597. Данное число попадает в третий интервал, соответствующий масти В. Произошло случайное событие: «Масть выпавшей карты — В».
Поскольку теперь в колоде 9 карт масти Ч, 9 карт масти П, 8 карт масти В, 9 карт масти Б, то интервал от 0 до 1 будет разбит на отрезки длиной: 9/35, 9/35, 8/35, 9/35, то есть [0.000—0.257], [0.257—0.514], [0.514—0.743], [0.743—1.000]. Разыграем случайное равномерно распределенное число в интервале от 0 до 1. Например, 0.321. Данное число попадает во второй интервал, соответствующий масти П.
Продолжая процесс, можно получить (в зависимости от конкретных случайных чисел), например, такую последовательность: В—П—В—Ч—Б—П—Ч—… (в качестве иллюстрации см.рис. 23.5).
Рис. 23.5. Иллюстрация работы генератора случайных чисел на примере выбора карт из колоды
Задача.События А, В, С образуют полную группу событий. Известна вероятность свершения двух событий. Найти вероятность свершения третьего события и определить, какое событие произошло, если при моделировании генератор случайных чисел выдал случайное число Х.
Таблица исходных данных
Х |
Р(А) |
Р(В) |
Р(С) |
0.9 |
0.35 |
0.4 |
? |
Решение
1. т.к. события образуют полную группу, то
P(C)=1-0.35-0.4=0.25
0.9>0.75 => событие P(C) наступило
Ответ: P(C) =0,25. при Х =0,9 событие P(C) наступило.
Вау!! 😲 Ты еще не читал? Это зря!
- случайное событие
- моделирование случайной величины моделирование случайной величины с заданным законом распределения , моделирование случайной величины , метод ступенчатой аппроксимации , метод усечения ,
Я что-то не договорил про моделирование случайного события, тогда сделай замечание в комментариях Надеюсь, что теперь ты понял что такое моделирование случайного события, моделирование полной группы несовместных событий, решение задачи моделирование случайного события, имитация случайного события
и для чего все это нужно, а если не понял, или есть замечания,
то нестесняся пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории
Моделирование и Моделирование систем
Время на прочтение
6 мин
Количество просмотров 473K
Невозможно, просто взять и вникнуть в этот глубокий смысл, изучая События (event) в просторах базового и, на первый взгляд, бесконечного C#.
Когда я изучал События (не в рамках .NET!), потратил много сил, чтобы, наконец-то, разобраться, как они устроены и должны конструироваться. Поэтому, я решил опубликовать свою методику понимания структуры пользовательского события, коим представляется ключевое слово event в С#.
Не буду цитировать и без того замученную MSDN, а постараюсь объяснить понятно и доступно.
Что требуется Вам для изучения:
- 1. Вы не должны испытывать страх перед изучением. Пожалуйста, читайте медленно и вдумчиво.
- 2. Вы должны понимать классы и методы.
- 3. Вы должны
знатьпонимать, что есть делегаты. Хотя, Вы можете попытаться понять их в ходе чтения статьи.
Событие, это не что иное, как ситуация, при возникновении которой, произойдет действие или несколько действий. Говоря языком программного моделирования, Событие — это именованный делегат, при вызове которого, будут запущены все подписавшиеся на момент вызова события методы заданной сигнатуры. Эта трактовка хоть и раскрывает всю суть структуры события, но не только сбивает с толку начинающих «шарп-прогеров», но и не дает возможность рационально представить в программистской голове весь смысл.
Итак, Событие, это ситуация, при возникновении которой, произойдут некоторые действия. Само событие имеет определенную структуру.
Предположим, что стоит такая задача: определено три класса. Первый класс будет считать до 100, используя цикл. Два других класса будут ждать, когда в первом классе счетчик досчитает, например, до 71, и после этого каждый выведет в консоль фразу «Пора действовать, ведь уже 71!». Проще говоря, при обнаружении значения 71, вызовутся по методу, соответственно для каждого класса. Разложим все по полкам.
1. Моделирование ситуации.
Подготовим эти три простейших класса, оставив точку входа в программу main нетронутой.
Класс ClassCounter и его метод Count() в котором будет производится счет. (В коде я опускаю пространства имен namespace, ибо это ясно, как день).
class ClassCounter //Это класс - в котором производится счет.
{
public void Count()
{
//Здесь будет производиться счет
}
}
Два других класса (имена им Handler_I и Handler_II), которые должны реагировать на возникновение события методами public void Message(). У каждого по методу, как и договаривались.
class Handler_I //Это класс, реагирующий на событие (счет равен 71) записью строки в консоли.
{
public void Message()
{
//Не забудьте using System
//для вывода в консольном приложении
Console.WriteLine("Пора действовать, ведь уже 71!");
}
}
class Handler_II
{
public void Message()
{
Console.WriteLine("Точно, уже 71!");
}
}
Напомню, когда счетчик будет считать до 100 и достигнет 71, должны сработать методы Message() для классов Handler_I и Handler_II.
Теперь вернемся к классу ClassCounter и создадим счетчик при помощи цикла for c переменной-счетчиком int i.
class ClassCounter //Это класс - в котором производится счет.
{
public void Count()
{
for (int i = 0; i < 100; i++)
{
}
}
}
Первый этап завершен. У нас есть класс счетчик и два класса, которые будут выводить сообщения. Условия задачи: как только i=71, должны сработать методы Message() для двух классов Handler_I и Handler_II.
2. Оформление события.
Абстрагируемся от программирования. Событие, которое мы хотим создать, будет представлять фразу «… счетчик считает. И как только он будет равен 71, должны выполниться действия». Значит, нам необходимо условие «как только он будет равен 71». Представим его при помощи условного оператора if.
class ClassCounter //Это класс - в котором производится счет.
{
public void Count()
{
for (int i = 0; i < 100; i++)
{
if (i == 71)
{
}
}
}
}
Конструируем событие event. Определяем по методам, которые должны сработать при i=71 их сигнатуру (или прототип).
Сигнатура метода — это так называемая спецификация (или простыми словами «шаблон») какого-л. метода или методов. Представляет собой сочетание названия типа, который метод возвращает, плюс название типов входящих параметров (по порядку! порядок очень важен.)
Например, метод int NewMethod(int x, char y) будет иметь сигнатуру int (int, char), а метод void NewMethod() — void (void).
Как толкует MSDN, события (event) основаны на делегатах (delegate), а делегат, говоря
очень простым языком
— «переменная, хранящая ссылку на метод». Как Вы уже поняли, т.к. наше событие будет ссылаться на два метода void Message(), мы должны определить сигнатуру этих методов, и составить на основе этой сигнатуры делегат. Сигнатура выглядит так: void (void).
Определяем делегат (назовем его MethodContainer):
class ClassCounter //Это класс - в котором производится счет.
{
//Синтаксис по сигнатуре метода, на который мы создаем делегат:
//delegate <выходной тип> ИмяДелегата(<тип входных параметров>);
//Мы создаем на void Message(). Он должен запуститься, когда условие выполнится.
public delegate void MethodContainer();
public void Count()
{
for (int i = 0; i < 100; i++)
{
if (i == 71)
{
}
}
}
}
Далее, мы создаем событие при помощи ключевого слова event и связываем его с этим делегатом (MethodContainer), а, следовательно, c методами, имеющими сигнатуру void (void). Событие должно быть public, т.к. его должны использовать разные классы, которым нужно как-то отреагировать (классы Handler_I и Handler_II).
Событие имеет синтаксис: public event <НазваниеДелегата> <НазваниеСобытия>;
Название делегата — это имя делегата, на который «ссылаются» наши методы.
class ClassCounter //Это класс - в котором производится счет.
{
public delegate void MethodContainer();
//Событие OnCount c типом делегата MethodContainer.
public event MethodContainer onCount;
public void Count()
{
for (int i = 0; i < 100; i++)
{
if (i == 71)
{
}
}
}
}
Теперь запустим наше событие onCount, в условии когда i=71:
if (i == 71)
{
onCount();
}
Все. Событие создано. Методы, которые вызовет это событие, определены по сигнатурам и на основе их создан делегат. Событие, в свою очередь, создано на основе делегата. Пора показать событию onCount, какие же все-таки методы должны сработать (мы ведь указали только их сигнатуру).
3. Подписка.
Вернемся в точку входа программы main и создадим экземпляр класса ClassCounter. А также создадим по экземпляру классов, которые должны запуститься. (Они должны быть public).
class Program
{
static void Main(string[] args)
{
ClassCounter Counter = new ClassCounter();
Handler_I Handler1 = new Handler_I();
Handler_II Handler2 = new Handler_II();
}
}
Теперь укажем событию onCount, методы, которые должны запуститься.
Происходит это следующим образом: <КлассИлиОбъект>.<ИмяСобытия> += <КлассЧейМетодДолженЗапуститься>.<МетодПодходящийПоСигнатуре>.
Никаких скобочек после метода! Мы же не вызываем его, а просто указываем его название.
class Program
{
static void Main(string[] args)
{
ClassCounter Counter = new ClassCounter();
Handler_I Handler1 = new Handler_I();
Handler_II Handler2 = new Handler_II();
//Подписались на событие
Counter.onCount += Handler1.Message;
Counter.onCount += Handler2.Message;
}
}
Проверка.
Теперь осталось запустить счетчик класса ClassCounter и подождать, пока i станет равным 71. Как только i=71, запустится событие onCount по делегату MethodContainer, который (в свою очередь) запустит методы Message(), которые были подписаны на событие.
class Program
{
static void Main(string[] args)
{
ClassCounter Counter = new ClassCounter();
Handler_I Handler1 = new Handler_I();
Handler_II Handler2 = new Handler_II();
Counter.onCount += Handler1.Message;
Counter.onCount += Handler2.Message;
//Запустили счетчик
Counter.Count();
}
}
Результат:
Пора действовать, ведь уже 71!
Точно, уже 71!
Заключение.
Постарайтесь понять смысл и порядок создания события.
- 1. Определите условие возникновения события и методы которые должны сработать.
- 2. Определите сигнатуру этих методов и создайте делегат на основе этой сигнатуры.
- 3. Создайте общедоступное событие на основе этого делегата и вызовите, когда условие сработает.
- 4. Обязательно (где-угодно) подпишитесь на это событие теми методами, которые должны сработать и сигнатуры которых подходят к делегату.
Класс, в котором вы создаете событие (генерируете) называется классом-издателем, а классы, чьи методы подписываются на это событие при помощи «+=» — классами-подписчиками.
Запомните! Если Вы не подписались на событие и его делегат пустой, возникнет ошибка.
Чтобы избежать этого, необходимо подписаться, или не вызывать событие вообще, как показано на примере (Т.к. событие — делегат, то его отсутствие является «нулевой ссылкой» null).
if (i == 71)
{
if (onCount != null)
{
onCount();
}
}
Вы всегда можете отписаться, используя оператор «-=«: <КлассИлиОбъект>.<ИмяСобытия> -= <КлассЧейМетодДолженЗапуститься>.<МетодПодходящийПоСигнатуре>.
Преимущество Событий очевидно: классу-издателю, генерирующему событие не нужно знать, сколько классов-подписчиков подпишется или отпишется. Он создал событие для определенных методов, ограничив их делегатом по определенной сигнатуре.
События широко используются для составления собственных компонентов управления (кнопок, панелей, и т.д.).
У самых маленьких может возникнуть вопрос: что делать, если методы, которые должны сработать имеют входящий параметр (а то и не один!)?
Ответ: Все дело в делегате, на котором базируется событие. А точнее сигнатура подходящих для делегата методов. Когда Вы сконструируете делегат, «принимающий» метод с параметром, то (!) при запуске событие запросит этот параметр. Естественно, параметр может быть чем угодно.
Пару слов о .NET-событиях. Microsoft упростила задачу конструирования делегатов: .NET предлагает готовый делегат EventHandler и т.н. «пакет» входных параметров EventArgs. Желаете событие? Берете готовый EventHandler, определяетесь в параметрах, «запихиваете» их в класс, а класс наследуете от EventArgs. А дальше — как по расписанию)
Многие разработчики утверждают (и я с ними согласен), что главная проблема «недопонимания» событий — их специфическая область применения, а вследствие — мало доступных примеров. Ну и не забывайте о практике.
P.S. Если вы не ни разу не использовали делегаты, лучше попробуйте потренироваться на делегатах, а затем попытайтесь понять эту статью.
Я надеюсь, что внес небольшое понимание в эту непростую тему. Успехов!
- Разрабатываем алгоритмы действий и создаем блок-схемы
- Как создаются алгоритмы действий?
- Опишите последовательность действий – это запоминается
- Алгоритм действий в графике – это блок-схема
- Блок-схемы применяются в продажах
- Сервисы для разработки блок-схем
- Создавайте игровые блок-схемы для своих детей
- Моя блок-схема
- Опишите последовательность действий – это запоминается
- Как создаются алгоритмы действий?
Разрабатываем алгоритмы действий и создаем блок-схемы
В жизни нам часто приходится встречаться с различными ситуациями, в которых мы совершаем одни и те же определенные действия. Для того, чтобы вовремя проснуться, нам нужно не забыть включить будильник. Для того, чтобы утолить свой голод, нам необходимо выполнить одни и те же действия по приготовлению вкусной пищи. Для того, чтобы выполнить знакомую нам работу, мы тоже часто делаем одно и то же.
Такое поведение можно называть по-разному, смотря в каком контексте оно рассматривается. Если рассмотреть с позиции эффективности деятельности, то эти действия можно назвать привычками или навыками. Если рассматривать с точки зрения отображения процесса, то описание последовательности действий, строгое исполнение которых приводит к решению поставленных задач за определенное количество шагов, называют алгоритмом действий.
Как создаются алгоритмы действий?
Мы постоянно сталкиваемся с этим в обычной жизни. Какие действия мы совершаем, чтобы пополнить счет своего мобильного телефона? Каждый из нас – разные. Так как способов пополнения счета несколько, следовательно мы все по-разному это делаем. Результат, правда всегда один получается – появление средств на телефоне.
Или еще пример: чтобы скопировать картинку или текст, нажимаем правой кнопкой мыши на картинку, затем выбираем “Копировать”, помещаем в нужное место, нажимаем правой кнопкой ” Вставить”, и результат достигнут.
Все это – определенная последовательность действий, в результате которых различными средствами решается поставленная задача. Но пока это только наши знания, которые перерастают в навыки и умения, а если этот процесс описать, то мы сможем наглядно увидеть алгоритм наших действий, и передать его другим людям. На словах не все и не всегда понятно бывает.
Опишите последовательность действий – это запоминается
Создать алгоритм действий можно, описав или изобразив его последовательность. Знают ли все, что надо сделать, чтобы посадить дерево? Возможно, основные шаги понятны всем, но вот когда деревце поливать, перед посадкой или после, помнит не каждый. Созданный алгоритм позволит все действия выполнить в правильной последовательности.
Чтобы описать последовательность действий посложнее, придется постараться и подробно их все записать. Пример можно взять с всевозможных правил и инструкций – там очень четко прописываются по шагам действия, которые нам надо сделать. Но бывают ситуации, в которых за определенным действие следует не один шаг, а несколько, в зависимости от предыдущего результата. В таком случае, предположительные действия тоже записывают, чтобы человек мог легко сориентироваться в разных ситуациях, и знал, что нужно предпринять.
Алгоритм действий в графике – это блок-схема
Если изобразить алгоритмы действий в графическом варианте, с помощью геометрических фигур с линиями-связями, показывающими порядок выполнения действия, то мы получим блок-схему. Блок-схема намного превосходит правила, инструкции, и записанные по порядку алгоритмы действий, по своей наглядности и читаемости.
Представьте, что вам нужно чему-то научить другого человека. Вы отлично знаете все действия в определенной последовательности. Ваша задача – показать, как это нужно делать и передать свои знания так, чтобы другой человек их запомнил и знал так же, как и вы. Устная передача знаний допускает импровизации и некоторый произвол. Самым лучшим способом будет блок-схема, в которой объясняется последовательность и возможные варианты действий. В качестве примера – веселое руководство по изучению блог-схем:
Лучшим условием для получения результата будет повторяемость действий. Это однозначно влияет на скорость достижения результата в будущем. Чем чаще вам придется повторять одни и те же действия, тем быстрее вы научитесь выполнять последовательность действий, а значит в каждый последующий раз, вам потребуется меньше времени на выполнение.
Блок-схемы применяются в продажах
В продажах такое обучение с помощью разработки алгоритмов и изображения их в виде блок-схем имеет большое распространение. Чаще всего их используют в телефонных сценариях разговоров в call-центрах и для “холодных” звонков. Корпоративная культура набирает обороты, поэтому многие компании уже не позволяют сотрудникам нести “отсебятину”, даже талантливую, а предлагают действовать им по заранее разработанному сценарию, представляя “лицо фирмы” на различных этапах. Эффект появляется буквально после нескольких дней действий “по бумажке”. Со временем, многое из описанных алгоритмов запоминается сотрудником, и в дальнейшем он свободно может общаться, не опасаясь того, в какую сторону может уйти разговор.
Алгоритмы действий и блог-схемы разрабатываются не только в продажах. Большое распространение они имеют в обучении и практике врачей, программистов, “компьютерщиков”, у многих технических специальностей.
Стоит попробовать научиться действовать по подобным блок-схемам. Ведь впервые встречаясь с непонятным поначалу обилием действий и задач, думаешь о том, как тебе не хватает разработанной блок-схемы. После долгих мучений не выдерживаешь, и начинаешь разрабатывать и создавать самостоятельно. Эффективные люди не любят простоев в делах. А блок-схемы значительно упрощают жизнь и позволяют разобраться в решении сложных задач.
Сервисы для разработки блок-схем
В интернете есть сервисы, которые могут помочь вам создавать такие блок-схемы. Один из них – Сacoo. С его помощью вам легко удастся превращать ваши алгоритмы в различные диаграммы, блок-схемы и графики. Вы увидите, что это очень приятное и радостное занятие – преобразовывать то, что вам известно, в науку для других людей.
На этом онлайн-сервисе – хорошее настроение вам обеспечено. На первоначальном этапе можно воспользоваться возможностями бесплатной учетной записи, а в будущем за доступ нужно будет платить. Естественно, что бесплатный доступ имеет ограничения по сравнению с платными. Но для изучения и первых шагов, функционала вполне достаточно.
Разработав алгоритмы действий и преобразовав их в блок-схемы с помощью Cacoo, вы сможете надолго создать хорошее настроение не только себе, но и другим людям, постигающим азы.
Создавайте игровые блок-схемы для своих детей
Подводя итог вышесказанному отмечу, что теперь вы сможете использовать алгоритмы действий и блок-схемы в различных жизненных ситуациях. Даже ваши дети с огромным удовольствием станут выполнять не самые интересные обязанности, следуя понятным подсказкам. Если будут идеи, где и как можно применять алгоритм действий, поделитесь в комментариях, уважаемые читатели. Очень хотелось бы узнать про ваши алгоритмы.
Моя блок-схема
Вот какая блок-схема у меня получилась в первый раз. Для того, чтобы увеличить изображение, нажмите на него. После перехода на Cacoo, под записью “просмотр фигуры”, нажимайте на картинку. Она откроется в большом окне. Удачи!
Успевайте больше за меньшее время вместе с “Копилкой эффективных советов”.
Просмотры: 4 613
Работа в среде, управляемой событиями
Содержание
-
Работа в среде, управляемой событиями
- Терминология для понимания событий
-
Программирование управляемое событиями
- Программирование обработчиков событий
- Проектирование программ управляемых событиями
- Генерация событий
-
Как связать событие с обработчиком?
-
Работа с методами wx.EvtHandler
- Старый стиль связывания
-
Работа с методами wx.EvtHandler
-
Как wxPython обрабатывает события?
- Понимание процесса обработки событий
- Использование метода Skip()
- Методы wx.App для управления событиями
-
Как создать собственные события?
- Определение своего события для своего виджета
- Резюме
Эта глава включает:
- Программирование в среде, управляемой событиями
- Связь событий с обработчиками
- Распространение событий в wxPython
- Создание своих событий
Обработка событий — фундаментальный механизм, на котором основана работа программ wxPython. Такие программы называют программами, управляемыми событиями. В этой главе, мы обсудим, чем управляемое событиями приложение отличается от традиционного. Мы дадим краткий обзор понятий и терминологии, используемой в программирование GUI. Мы также расскажем о жизненном цикле типичной управляемой событиями программы.
Событие – это то, что случается в вашей системе, и на что ваше приложение может отреагировать, вызывая определенную функцию. Событие может быть низкоуровневым действием пользователя, типа перемещения мыши или нажатия клавиши, или высокоуровневым, типа выбора из меню. Событие может также быть создано операционной системой. Созданные вами объекты также могут создавать собственные события. Приложение wxPython работает, связывая определенный вид события с определенным программным кодом, который должен быть выполнен в ответ на событие. Такой программный код, связанный с событием, называется обработчиком события.
Эта глава рассказывает о событиях, о том как писать код для обработки событий, и о том как система wxPython вызывает ваш код, когда событие произошло. Мы также покажем вам, как добавить собственные события к библиотеке wxPython, которая содержит список стандартных пользовательских и системных действий.
Терминология для понимания событий
Эта глава содержит много терминов, большая часть которых начинается со слова событие (event). Таблица 3.1 — справочник терминов, которые мы будем использовать.
Таблица 3.1 Термины, связанные с событием
Термин |
Описание |
event |
Событие. Что-то, что случается во время работы вашего приложения, и что требует какой-то реакции. |
event object |
Событие как объект. События представлены как объекты класса wx.!Event и его подклассов, типа wx.CommandEvent и wx.MouseEvent. |
event type |
Тип события. В wxPython каждое событие имеет целочисленный идентификатор – тип события, который уточняет природу события. Например, у события wx.MouseEvent есть тип, который указывает, что событие является или щелчком мыши или перемещением мыши. |
event source |
Источник события. Любой объект wxPython, который создал событие. Например: кнопка, пункт меню, список или любой другой виджет. |
event-driven |
Программа имеющая такую структуру, где большая часть времени отводится на ожидание и обработку событий. |
event queue |
Очередь событий. Список событий, которые уже произошли, но еще не были обработаны. |
event handler |
Обработчик события. Функция или метод, который вызывается в ответ на событие. |
event binder |
Биндер. Объект wxPython, который инкапсулирует связь между определенным виджетом, определенным типом события и соответствующим обработчиком. Чтобы быть вызванными, все обработчики событий должны быть зарегистрированы биндерами. |
wx.EvtHandler |
Класс wxPython, который позволяет его объектам создавать связь между биндером определенного типа, источником события (event source) и обработчиком события (event handler). Отметьте, что класс wx.EvtHandler не то же самое, что функция или метод обработчик события. |
Мы надеемся, что эта таблица не позволит вам перепутать обработчики событий с биндерами. Обращайтесь к этой таблице по мере необходимости. Мы начнем с краткого обзора управляемого событиями программирования, затем мы обсудим специфические особенности того, как все это реализовано в wxPython.
Программирование управляемое событиями
Программа, управляемая событиями, имеет структуру управления, которая, главным образом, получает события и отвечает на них. Структура программы wxPython (или любой другой программы, управляемой событиями) существенно отличается от структуры обычного сценария Python. Типичный сценарий Python имеет определенную отправную точку и определенный пункт окончания, и программист управляет порядком выполнения, используя условные операторы, циклы и функции. Программа не линейна, но ее порядок часто независим от пользовательских действий.
С точки зрения пользователя, программа wxPython большую часть времени ничего не делает. Она ожидает пока пользователь или система проявят свою активность. Структура программы wxPython – это пример архитектуры программы, управляемой событиями. На рисунке 3.1 показаны главные части программы, управляемой событиями.
Рисунок 3.1 Схематичное изображение цикла обработки событий. Показан жизненный путь программы, пользовательские события и вызов обработчиков.
Цикл обработки событий можно сравнить с оператором в сервис-центре. Пока нет входящих звонков оператор ожидает. Наконец происходит событие — телефонный звонок. В процессе общения с клиентом, оператор должен получить достаточно информации, чтобы знать к кому переадресовать клиента для ответа. После пересылки, оператор ждет следующего звонка.
Хотя каждая система управляемая событиями имеет свои особенности, между ними много общего. Первичные характеристики программы управляемой событиями следующие:
-
После начальной установки, большую часть времени программа проводит в цикле, ожидая события. Вход в этот цикл показывает начало пользовательской интерактивной части программы, и выход из цикла показывает ее конец. В wxPython, этот цикл – метод wx.App.MainLoop(). Он должен быть явно вызван в вашем сценарии. Выход из цикла происходит, когда все окна верхнего уровня закрыты.
- Программа реагирует на события, которые могут произойти в среде программы. Обычно, события вызываются пользовательской деятельностью, но могут также быть результатом деятельности системы, или произвольного кода в другом месте программы. В wxPython, все события – объекты класса wx.Event или производного от него. Каждое событие имеет атрибут тип события (event type) (см. таблицу 3.1), который позволяет различать виды событий.
- В цикле, программа периодически проверяет, случилось ли что-нибудь требующее ответа. Есть несколько механизмов, которыми система, управляемая событиями, может получать информацию о событиях. Наиболее популярный метод, используемый wxPython: события помещаются в общую очередь по мере поступления, а затем извлекаются из нее и обрабатываются.
-
Когда событие происходит, система его обрабатывает, вызывая программный код, связанный с этим событием. В wxPython, родные системные события переведены в объекты wx.Event и созданы методы wx.EvtHandler.ProcessEvent() для того, чтобы послать события надлежащему обработчику. На рисунке 3.3 схематически изображен этот процесс. Составляющие части механизма обработки событий – биндеры (event binder) и обработчики событий. Биндер (event binder) — предопределенный объект wxPython. Есть отдельный биндер для каждого типа события. Обработчик (event handler) — функция или метод, который принимает объект события как параметр. Обработчик вызывается, когда пользователь вызывает соответствующее событие.
Далее, мы подробно обсудим как это реализовано в wxPython. И начнем с обработчиков событий.
Программирование обработчиков событий
В вашем коде wxPython, события и обработчики событий должны быть связаны с соответствующими виджетами. Например, событие нажатия кнопки будет послано определенному обработчику, связанному с этой кнопкой. Для связи события, виджета и обработчика используете специальный объект — биндер. Например,
1 self.Bind(wx.EVT_BUTTON, self.OnClick, aButton)
используется предопределенный объект биндер wx.EVT_BUTTON для связи события нажатия кнопки aButton с методом self.OnClick. Метод Bind() – это метод класса wx.EvtHandler, который является базовым классом всех отображаемых объектов. Поэтому, этот пример кода может быть применен к любому виджету.
Вам кажется, что программа wxPython пассивно ждет событие, но на самом деле она выполняет метод wx.App.MainLoop(). MainLoop() может быть переведен в упрощенный псевдокод Python:
1 while True: 2 while not self.Pending(): 3 self.ProcessIdle() 4 self.DoMessage()
Другими словами, пока нет событий, система простаивает. При появлении события, посылается сообщение соответствующему обработчику.
Проектирование программ управляемых событиями
Природа управляемой событиями программы wxPython предполагает определенные способы проектирования и кодирования. Так как неизвестно, когда произойдет событие, программист уступает большую часть управления программой пользователю. Большая часть кода в вашей программе wxPython выполняется как прямой или косвенный результат действий пользователя или системы. Например, сохранение документа в вашей программе происходит после того, как пользователь выберет пункт меню, нажмет кнопку панели инструментов или нажмет горячую клавишу. Любое из этих событий может вызвать обработчик, который сохраняет документ пользователя.
Архитектура программ, управляемых событиями, является распределенной. Код, который вызывается в ответ на событие, обычно не определяется виджетом, который вызвал это событие. Например, программный код, вызванный в ответ на нажатие кнопки, не обязан быть частью определения кнопки. Он может быть определен во фрейме или любом другом месте. Объединение такой архитектуры с объектно-ориентированным дизайном позволяет создавать программный код многократного использования. Вы найдете, что гибкая природа Python делает особенно простым повторное использование общих обработчиков событий в различных приложениях wxPython. С другой стороны, распределенная природа программы, управляемой событиями, затрудняет ее понимание и поддержку. Иногда бывает трудно разыскать метод, вызываемый в ответ на событие. (В некоторой степени, эта проблема верна для всего объектно-ориентированного программирования). В главе 5 мы дадим рекомендации, позволяющие упорядочить код программ, управляемых событиями.
Генерация событий
В wxPython, большинство виджетов генерирует высокоуровневые события в ответ на события более низкого уровня. Например, щелчок мыши на кнопке wx.Button генерирует событие wx.CommandEvent типа EVT_BUTTON. Точно так же при перетаскивании мышью угла окна, wxPython автоматически создаст событие wx.SizeEvent. Преимущество высокоуровневых событий состоит в том, что они позволяют сосредоточиться на самих событиях, вместо того, чтобы отслеживать каждый щелчок мыши. Высокоуровневые события могут также содержать полезную информацию о событии. Поскольку вы создаете ваши собственные виджеты, вы можете определить ваши собственные события.
В wxPython cобытия – это объекты класса wx.Event или производного от него. Базовый класс wx.Event – это небольшой абстрактный класс, содержащий методы чтения и записи для свойств, определенных для всех событий, типа EventType, EventObject, и !Timestamp. Различные подклассы wx.Event добавляют дополнительную информацию. Например, wx.MouseEvent содержит информацию о координатах курсора миши и нажатой кнопке.
В wxPython определено несколько различных подклассов wx.Event. Таблица 3.2 содержит список некоторых из классов событий, с которыми вы скорее всего столкнетесь. Помните, один класс события может иметь много типов. Каждый тип события соответствует различным действиям пользователя.
Таблица 3.2 Важнейшие подклассы wx.Event
Событие |
Описание |
wx.CloseEvent |
Происходит при закрытии фрейма. Тип события позволяет различить нормальное закрытие фрейма и системное завершение. |
wx.CommandEvent |
Происходит при взаимодействии пользователя с различными виджетами, типа щелчка кнопки, выбора пункта меню или радио- кнопки. Каждое из этих отдельных действий имеет собственный тип. Многие более сложные виджеты, типа списка или сетки (grid), определяют подклассы wx.CommandEvent. Обработка команд отличается от обработки других событий. |
wx.KeyEvent |
Происходит при нажатии клавиши на клавиатуре. Типы: key down, key up и key press. |
wx.MouseEvent |
События мыши. Типы события различают перемещение мыши и щелчок мыши. Есть отдельные типы, в зависимости от нажатой кнопки и для одиночного и двойного щелчка. |
wx.PaintEvent |
Происходит, когда содержимое окна должно быть перерисовано. |
wx.SizeEvent |
Происходит при изменении размеров окна. Обычно это приводит к изменению размеров или расположения элементов окна. |
wx.TimerEvent |
Может быть создано классом wx.Timer, который генерирует периодические события. |
Как правило, объекты событий сами ничего не делают. Событие передается как параметр соответствующему обработчику, используя биндер и систему обработки событий.
Как связать событие с обработчиком?
Биндеры состоят из объектов класса wx.PyEventBinder. Объекты wx.PyEventBinder определены для всех типов поддерживаемых событий. Вы можете создать ваши собственные биндеры для ваших собственных типов событий, когда это необходимо. Для каждого типа события определен свой биндер. Типы событий более детализированы чем подклассы wx.Event. Например, класс wx.MouseEvent имеет четырнадцать отдельных типов событий.
В wxPython, имена объектов биндеров глобальны. Чтобы ясно связать типы объектов с обработчиками, эти имена начинаются с wx.EVT_ и соответствуют названиям макроопределений, используемых в коде C++ wxWidgets. В коде wxPython, имя биндера используются вместо типа события. В результате, и это стоит подчеркнуть, имя биндера – это не целочисленный код, который вы получили бы, вызывая метод GetEventType() объекта wx.Event. Челочисленные коды типов событий имеют полностью различный набор глобальных названий, и не часто используются практически.
Для примера рассмотрим типы событий wx.MouseEvent. Как мы упоминали, их – четырнадцать. Девять из них описывают нажатия кнопок мыши. Вот их имена:
1 wx.EVT_LEFT_DOWN 2 wx.EVT_LEFT_UP 3 wx.EVT_LEFT_DCLICK 4 wx.EVT_MIDDLE_DOWN 5 wx.EVT_MIDDLE_UP 6 wx.EVT_MIDDLE_DCLICK 7 wx.EVT_RIGHT_DOWN 8 wx.EVT_RIGHT_UP 9 wx.EVT_RIGHT_DCLICK
Дополнительно, событие типа wx.EVT_MOTION происходит при перемещении мыши. Собития типов wx.ENTER_WINDOW и wx.LEAVE_WINDOW возникают, когда курсор мыши входит в область виджета и выходит из нее. Событие типа wx.EVT_MOUSEWHEEL происходит из-за движения колесика мыши. Наконец, вы можете связать все события мыши с единственной функцией, используя тип wx.EVT_MOUSE_EVENTS.
Аналогично, класс wx.CommandEvent имеет 28 различных типов событий, связанных с ним (хотя некоторые из них — только для последних версий Windows). Большинство из них определено для единственного виджета, например, wx.EVT_BUTTON для кнопки и wx.EVT_MENU для выбора пункта меню. События команды описываются вместе со своими виджетами во второй части книги.
Работа с методами wx.EvtHandler
Класс wx.EvtHandler определяет множество методов, которые не вызываются при нормальных обстоятельствах. Часто используется только метод Bind(). Он создает биндеры событий, которые мы обсуждали. Метод принимает следующие параметры:
1 Bind(event, handler, source=None, id=wx.ID_ANY, id2=wx.ID_ANY)
Функция Bind() связывает событие, объект и обработчик. Параметр event обязательный. Это объект класса wx.PyEventBinder как описано в разделе 3.3. Параметр handler, также обязательный. Это объект, поддерживающий вызов, обычно это метод или функция с единственным параметром – объектом событием. Параметром обработчика может быть None, если событие не связано с обработчиком. Параметр source – это виджет, который является источником события. Параметр используется, когда виджет, вызывающий событие не тот, который используется как обработчик. Как правило, обработчики событий — это методы вашего класса wx.Frame. С этими методами вы связываете события от виджетов, содержащихся в окне. Однако, если родительское окно содержит больше чем один источник события нажатия кнопки (например в окне есть две кнопки OK и Cancel), параметр source используется, чтобы различить какой объект является источником события. Следующий пример демонстрирует это:
1 self.Bind(wx.EVT_BUTTON, self.OnClick, button)
Связываются событие, объект button (и только button) и метод OnClick(). В листинге 3.1 дан пример использования метода Bind() с параметром source и без него. Вы не обязаны называть ваши обработчики событий On<event>, но это — общее соглашение.
Листинг 3.1 Пример использования метода Bind() с параметром source и без него
1 def __init__(self, parent, id): 2 wx.Frame.__init__(self, parent, id, 'Frame With Button', 3 size=(300, 100)) 4 panel = wx.Panel(self, -1) 5 button = wx.Button(panel, -1, "Close", pos=(130, 15), 6 size=(40, 40)) 7 8 self.Bind(wx.EVT_CLOSE, self.OnCloseWindow) 9 10 self.Bind(wx.EVT_BUTTON, self.OnCloseMe, button) 11 12 def OnCloseMe(self, event): 13 self.Close(True) 14 15 def OnCloseWindow(self, event): 16 self.Destroy()
(1) В этой строке событие закрытия фрейма связывается с методом self.OnCloseWindow. Так как событие и вызвано и связано с фреймом, нет необходимости передавать параметр source.
(2) Эта строка связывает событие нажатия кнопки с кнопкой и методом self.OnCloseMe. В этом случае, кнопка, генерирующая событие, это не фрейм. Поэтому, кнопку нужно передать как параметр методу Bind, чтобы wxPython мог различать события нажатия этой кнопки и события нажатия других кнопок фрейма.
Вы можете также использовать параметр source, чтобы идентифицировать элемент, даже если элемент не является источником события. Например, вы можете связать события меню с обработчиками даже при том, что события меню технически вызваны фреймом. Листинг 3.2 иллюстрирует пример связывания событий меню.
Листинг 3.2 Связывание событий меню
1 2 3 import wx 4 5 class MenuEventFrame(wx.Frame): 6 7 def __init__(self, parent, id): 8 wx.Frame.__init__(self, parent, id, 'Menus', 9 size=(300, 200)) 10 menuBar = wx.MenuBar() 11 menu1 = wx.Menu() 12 menuItem = menu1.Append(-1, "&Exit...") 13 menuBar.Append(menu1, "&File") 14 self.SetMenuBar(menuBar) 15 self.Bind(wx.EVT_MENU, self.OnCloseMe, menuItem) 16 17 def OnCloseMe(self, event): 18 self.Close(True) 19 20 if __name__ == '__main__': 21 app = wx.PySimpleApp() 22 frame = MenuEventFrame(parent=None, id=-1) 23 frame.Show() 24 app.MainLoop()
Параметры id и id2 метода Bind() определяют источник события, используя число ID, а не виджет непосредственно. Как правило, id и id2 не требуются, так как идентификатор (ID) источника события может быть извлечен из параметра source. Однако, иногда использование ID непосредственно имеет смысл. Например, если вы используете предопределенные ID для диалогового окна, легче использовать число ID, чем использовать виджет. Если вы используете оба параметра (и id и id2), то вы можете связать с событием несколько виджетов, идентификаторы которых находятся в диапазоне от id до id2. Это полезно, когда идентификаторы виджетов последовательны. Благодаря использованию типов событий, wxPython может очень точно управлять событиями, все еще позволяя подобным событиям быть объектами того же самого класса, и совместно использовать данные и функциональные возможности. Это делает написание обработчиков событий намного более чистыми в wxPython, чем в других инструментариях для создания интерфейса.
Биндеры позволяют связать виджет, событие и функцию обработчик. Эта связь позволяет системе wxPython отвечать на события виджета, выполняя код функции обработчика. В wxPython, любой объект, который может ответить на событие, является подклассом wx.EvtHandler. Все отображаемые объекты – это подклассы wx.EvtHandler, следовательно каждый виджет в приложении wxPython может отвечать на события. Класс wx.EvtHandler может использоваться не только с виджетами, например его использует wx.App. Таким образом объекты, отвечающие на события, не ограничены виджетами. Фраза: виджет может ответить на события, означает, что виджет может создать биндер, который wxPython использует для диспетчеризации событий. Программный код функции обработчика не обязан располагаться в классе wx.EvtHandler.
Старый стиль связывания
Метод Bind() появился в wxPython начиная с версии 2.5. В предыдущих версиях wxPython, имена EVT_* использовались как функции, и связывание выглядело следующим образом:
1 wx.EVT_BUTTON(self, self.button.GetId(), self.OnClick)
Недостаток старого стиля в том, что он не выглядит и не действует как объектно-ориентированный метод. Однако, старый стиль все еще работает в версии 2.5 (потому что объекты wx.EVT * поддерживают вызов), и вы, возможно, будете встречать его в коде wxPython.
В таблице 3.3 представлен список некоторых методов класса wx.EvtHandler, которые вы можете использовать для управления процессом обработки событий.
Таблица 3.3 Обычно используемые методы класса wx.EvtHandler
Метод |
Описание |
AddPendingEvent(event) |
Помещает параметр event в систему обработки событий. Подобен методу ProcessEvent(), но, в отличие от него, не вызывает непосредственную обработку события. Вместо этого событие добавляется в очередь событий. |
Bind(event, handler, source=None, id=wx.ID_ANY, id2=wx.ID_ANY) |
См. полное описание в разделе 3.3.1. |
GetEvtHandlerEnabled() SetEvtHandlerEnabled(boolean) |
Свойство имеет значение True, если обработчик в настоящее время обрабатывает события, иначе — False. |
ProcessEvent(event) |
Помещает объект event в систему обработки событий для непосредственной обработки. |
Как wxPython обрабатывает события?
Ключевой компонент системы, основанной на событиях, — это процесс диспетчеризации событий. В этом разделе, мы рассмотрим все шаги обработки поступающих событий. Для этого мы используем небольшой пример, чтобы проследить шаги в процессе. На рисунке 3.2 изображено окно с единственной кнопкой, которая будет использоваться для генерации событий.
Рисунок 3.2 Окно для тестирования событий
Листинг 3.3 содержит код, который создает это окно. В этом коде, события генерируются при щелчке на кнопке и при перемещении курсора мыши над кнопкой.
Листинг 3.3 Различные виды событий мыши
1 2 3 import wx 4 5 class MouseEventFrame(wx.Frame): 6 7 def __init__(self, parent, id): 8 wx.Frame.__init__(self, parent, id, 'Frame With Button', 9 size=(300, 100)) 10 self.panel = wx.Panel(self) 11 self.button = wx.Button(self.panel, 12 label="Not Over", pos=(100, 15)) 13 14 self.Bind(wx.EVT_BUTTON, self.OnButtonClick, 15 self.button) 16 17 self.button.Bind(wx.EVT_ENTER_WINDOW, 18 self.OnEnterWindow) 19 20 self.button.Bind(wx.EVT_LEAVE_WINDOW, 21 self.OnLeaveWindow) 22 23 def OnButtonClick(self, event): 24 self.panel.SetBackgroundColour('Green') 25 self.panel.Refresh() 26 27 def OnEnterWindow(self, event): 28 self.button.SetLabel("Over Me!") 29 event.Skip() 30 31 def OnLeaveWindow(self, event): 32 self.button.SetLabel("Not Over") 33 event.Skip() 34 35 if __name__ == '__main__': 36 app = wx.PySimpleApp() 37 frame = MouseEventFrame(parent=None, id=-1) 38 frame.Show() 39 app.MainLoop()
Фрейм MouseEventFrame содержит одну кнопку в середине. Нажатие на мышь изменяет цвет фона фрейма на зеленый. Клик мышкой связывается с обработчиком в строке (1). Когда курсор мыши входит в область кнопки, измененяется заголовок кнопки, связь с обработчиком в строке (2). Когда курсор мыши покидает кнопку, заголовок меняется на прежний, связь с обработчиком в строке (3).
При рассмотрении этого примера, возникают некоторые вопросы об обработке событий в wxPython. В строке (1), событие кнопки, генерируется кнопкой, расположенной на фрейме. Откуда wxPython знает, что искать биндер нужно в объекте frame, а не объекте button? В строках (2) и (3), события связываются непосредственно с объектом button. Почему эти события не могут также быть связаны с фреймом? На оба этих вопроса мы ответим после исследования процедуры обработки событий wxPython.
Понимание процесса обработки событий
Процедура обработки событий в wxPython была спроектирована так, чтобы сделать ее простой для программиста, чтобы обрабатывать высокоуровневые события и игнорировать низкоуровневые. Далее, мы проследим процедуру обработки событий для нажатия кнопки и щелчка мышью.
На рисунке 3.3 изображена основная блок-схема процесса обработки событий. Прямоугольники указывают начало и конец процесса, круги указывают различные объекты wxPython, которые являются частью процесса, ромбы указывают пункты решения, и прямоугольники с полосами указывают фактические методы обработчики событий.
Процесс начинается с объекта, который вызвал событие. Как правило, wxPython ищет сначала у этого объекта обработчик соответствующего типа события. Если обработчик найден, то он выполняется. В противном случае wxPython проверяет, распространять ли событие по контейнерной иерархии. Если да, то проверяется родительский контейнер и все контейнеры до окна верхнего уровня. Если событие не распространяется, то wxPython проверяет прикладной объект (wx.App) для поиска метода обработчика. После выполнения обработчика процесс обычно заканчивается. Однако, обработчик может сказать wxPython продолжать искать обработчики.
Рисунок 3.3
Давайте подробно рассмотрим каждый шаг процесса. Перед обсуждением каждого шага, мы отобразим эскиз для соответствующего фрагмента рисунка 3.3.
Шаг 1 Создание события
Процесс начинается, когда событие произошло.
Рисунок 3.4
Большинство существующих типов событий создается в ответ на определенные пользовательские действия или системные уведомления. Например, событие mouse entering создается, когда wxPython замечает вход мыши в границы нового виджета, и событие button click создается после событий left mouse down и left mouse up на кнопке.
Событие сначала передается объекту, ответственному за создание события. Для button click, объект — кнопка, для mouse enter event, объект – виджет, в который входит курсор мыши.
Шаг 2 Определяет, разрешено ли объекту обрабатывать события
Следующий шаг процесса проверяет, может ли виджет ответственный за событие обработать это события.
Окну можно разрешить или запретить обработку события, вызывав метод wx.EvtHandler SetEvtHandlerEnabled(boolean). Эффект запрещения обработки события состоит в том, что виджет полностью исключается из процесса обработки события.
Разрешение (enable) или заперщение (disable) виджета на уровне обработки события не нужно путать с запрещением виджета на уровне пользовательского интерфейса (UI). Отключение виджета на уровне UI можно выполнить, используя методы Disable() и Enable() класса wx.Window. Отключение виджета в UI означает, что пользователь не может взаимодействовать с заблокированным виджетом. Обычно, заблокированный виджет показан на экране серым цветом, чтобы указать на его состояние. Окно, которое было заблокировано на уровне UI, не будет в состоянии произвести любые события; однако, если оно находится на контейнерной иерархии для других событий, оно все еще обрабатывает события, которые получает. До конца этого раздела, мы будем использовать термины enabled и disabled имея в виду уровень обработки события.
Рисунок 3.5
Проверка состояния объекта enabled/disabled выполняется в методе ProcessEvent(), который вызывает система wxPython, чтобы запустить механизм диспетчеризации событий. Мы будем встречать метод ProcessEvent() снова и снова при рассмотреднни процесса обработки событий. Он фактически осуществляет большую часть процесса, изображенного на рисунке 3.3. Метод ProcessEvent() возвращает True, если обработка события выполнена. Обработку считают выполненой, если найдена функция обработчика для объекта и обрабатываемого события. Функция обработчика может явно просить продолжить обработку, вызвав метод Skip() класса wx.Event. Кроме того, если объект — подкласс wx.Window, он может фильтровать события, используя специальный объект — validator. Validators рассматриваются более подробно в главе 9.
Шаг 3 Определение расположения обработчика
Метод ProcessEvent() ищет объект binder, который связывает тип события и текущий объект.
Рисунок 3.6
Если binder не найден для объекта непосредственно, обработка идет по иерархии класса, чтобы найти binder в родительском классе объекта — это отличается от обхода в контейнерной иерархии, которая выполняется в следующем шаге. Если объект binder найден, wxPython вызывает связанную функцию обработчика. После того, как обработчик вызван, обработка этого события завершается, если только функция обработчика явно не запрашивает дальнейшую обработку.
В листинге 3.3 событие mouse enter перехватывается, потому что определена связь между кнопкой, биндером wx.EVT_ENTER_WINDOW и методом OnEnterWindow(), который и вызывается. Так как мы не связывали событие mouse button click и wx.EVT_LEFT_DOWN, wxPython продолжил бы поиск в этом случае.
Шаг 4 Определяет продолжать ли обрабатывать событие
Рисунок 3.7
После вызова первого обработчика, wxPython проверяет требуется ли дальнейшая обработка. Обработчик запрашивает дальнейшую обработку, вызывая метод Skip() класса wx.Event. Если метод Skip() вызывается, то обработка продолжается, и любые обработчики, определенные в суперклассе выполняются в этом шаге. Метод Skip() можно вызвать в любом месте обработчика, или любом коде, вызванном обработчиком. Метод Skip() устанавливает в объекте события флаг, который wxPython проверяет после выполнения метода обработчика. В листинге 3.3 OnButtonClick() не вызывает Skip(), таким образом процесс обработки события завершается в конце метода обработчика. Другие два обработчика события вызывают Skip(), поэтому система продолжит искать соответствующий биндер для события, в конечном счете вызывая функцию обработки события по умолчанию.
Шаг 5 Определяет распространять ли событие В конечном счете wxPython определяет, должен ли процесс распространять событие по контейнерной иерархии, чтобы найти обработчик. Контейнерная иерархия – это путь от определенного виджета до фрейма верхнего уровня, проходящий от каждого виджета вверх к его родительскому контейнеру.
Рисунок 3.8
Если текущий объект не имеет обработчика для события, или если обработчик вызывает метод Skip(), wxPython определяет, должено ли событие распростанятся по контейнерной иерархии. Если ответ «Нет», процесс еще раз ищет обработчик, в объекте wx.App, и затем останавливается. Если ответ «Да», процесс переходит к контейнеру виджета. Процесс продолжается пока wxPython не находит соответствующий биндер, или не достигает фрейма верхнего уровня, или объекта wx.Dialog (даже если диалог не окно верхнего уровня). Считают, что событие нашло соответствующий биндер, если ProcessEvent () для этого объекта возвращает True, указывая, что обработка завершена.
Должено ли событие распространятся по контейнерной иерархии определяет динамическое свойство каждого объекта события, хотя на практике почти всегда используется значение по умолчанию. По умолчанию, только объекты класса wx.CommandEvent и производные от него, распространяются по контейнерной иерархии. Все другие события этого не делают.
В листинге 3.3 так обрабатывается нажатие кнопки. Щелчок мышью на wx.Button генерирует событие command типа wx.EVT_BUTTON. После того, как wxPython не в состоянии найти биндер в объекте кнопки, он передает событие родителю, который в этом случае является панелью. У панели нет соответствующего биндера, далее проверяется родитель панели — фрейм. Так как фрейм имеет соответствующий биндер, ProcessEvent() вызывает соответствующую функцию — OnButtonClick().
Шаг 5 также объясняет, почему события mouse enter и mouse leave должны быть связаны с кнопкой а не с фреймом. Так как события мыши не подкласс wx.CommandEvent, события mouse enter и mouse leave не распространяются вверх родителю, и wxPython не может найти соответствующий биндер.
Событиям command даются такие привилегии, потому что это высокоуровневые события, указывающие, что пользователь делает что-то в приложении, а не в конкретном окне. Предполагается, что события окна прежде всего представляют интерес для виджета, который первоначально их получает, в то время как события прикладного уровня могут представлять интерес выше в иерархии. Это правило не препятствует нам определять обработчик события в другом месте. Например, даже при том, что событие mouse click связано с кнопкой, сам биндер определен в классе фрейма, и вызывает метод класса фрейма. Другими словами, события низкого уровня non-command обычно используются для вещей, которые случаются с виджетом типа щелчка мыши, нажатия клавиши, запроса на перерисовку, изменение размера или перемещение. С другой стороны, события command, типа нажатия кнопки или выбора из списка, обычно производятся и испускаются непосредственно виджетом. Например, события команды кнопки генерируются после нажатия и отпускания кнопки мыши на соответствующем виджете.
Наконец, если событие не обработано после прохождения через контейнерную иерархию, ProcessEvent() вызывается для прикладного объекта wx.App. По умолчанию он ничего не делает, однако, вы можете добавить биндеры событий к вашему wx.App, чтобы обработать события некоторым нестандартным способом. Например, если вы пишите систему для создания GUI, вы можете захотеть, чтобы события в вашем окне построителя интерфейса распространялись и в окно редактирования кода, даже при том, что это оба окна верхнего уровня. Один из способов это сделать — фиксировать события в прикладном объекте и передавать их в окно кода.
Использование метода Skip()
Первый обработчик, найденный для события останавливает процесс обработки события, если только в обработчике не вызван метод Skip(). Метод Skip() позволяет продолжить поиск обработчиков в родительских классах и родительских контейнерах. В некоторых случаях, объект должен продолжить обрабатывать событие, чтобы позволить поведение по умолчанию наряду с вашим собственным обработчиком. В листинге 3.4 показан пример использования метода Skip(), который позволяет программе отвечать и на событие left button down и на событие button click в той же самой кнопке.
Листинг 3.4 Обработка mouse down и button click в то же самое время
1 2 3 import wx 4 5 class DoubleEventFrame(wx.Frame): 6 7 def __init__(self, parent, id): 8 wx.Frame.__init__(self, parent, id, 'Frame With Button', 9 size=(300, 100)) 10 self.panel = wx.Panel(self, -1) 11 self.button = wx.Button(self.panel, -1, "Click Me", pos=(100, 15)) 12 13 self.Bind(wx.EVT_BUTTON, self.OnButtonClick, self.button) 14 15 self.button.Bind(wx.EVT_LEFT_DOWN, self.OnMouseDown) 16 17 def OnButtonClick(self, event): 18 self.panel.SetBackgroundColour('Green') 19 self.panel.Refresh() 20 21 def OnMouseDown(self, event): 22 self.button.SetLabel("Again!") 23 24 event.Skip() 25 26 if __name__ == '__main__': 27 app = wx.PySimpleApp() 28 frame = DoubleEventFrame(parent=None, id=-1) 29 frame.Show() 30 app.MainLoop()
(1) Эта строка связывает кнопку, событие button click и обработчик OnButtonClick(), который изменяет цвет фона фрейма.
(2) Эта строка связывает событие left mouse button down и обработчик OnMouseDown(), который изменяет текст кнопки. Так как событие left mouse button down не событие command, это событие должно быть связано с кнопкой, а не с фреймом.
Когда пользователь щелкает мышью по кнопке, сначала система генерирует событие left mouse button down. При нормальных обстоятельствах, событие left mouse button down изменяет состояние кнопки таким образом, что последующее событие left button up, создает событие wx.EVT_BUTTON. Класс DoubleEventFrame сохраняет это поведение благодаря вызову метода Skip() в строке (3). Без Skip() алгоритм обработки события находил бы первым биндер, созданный в строке (2), и останавливался прежде, чем кнопка могла создать событие wx.EVT_BUTTON. С использованием метода Skip(), обработка события продолжается, и button click создается.
Связывая свои обработчики с низкоуровневыми событиями, такими как mouse up/down, помните, что wxPython тоже ожидает эти события, чтобы обработать или сгенерировать дальнейшие высокоуровневые события. Если вы не вызываете метод Skip(), то вы рискуете блокировать ожидаемое поведение. Например, вы можете не увидеть как нажимается кнопка.
Методы wx.App для управления событиями
Вы можете непосредственно управлять главным циклом обработки событий, используя некоторые методы wx.App. Например, вы можете захотеть начать обрабатывать следующее доступное событие в вашем собственном списке, вместо того, чтобы ждать пока wxPython начнет процесс обработки. Эта особенность необходима, если вы запускаете долгую процедуру, и не хотите, чтобы казалось, что GUI застыл. Вы не должны часто использовать методы из этого раздела, но иногда важно иметь такие возможности.
В таблице 3.4 содержится список методов wx.App, которые вы можете использовать для воздействия на цикл обработки событий.
Таблица 3.4 Методы wx.App для цикла обработки событий
Метод |
Описание |
Dispatch() |
Диспетчеризирует следующее событие из очереди событий. Используется методом MainLoop(), или в собственных циклах обработки событий. |
Pending() |
Возвращает True, если в очереди есть события, ожидающие обработки. |
Yield(onlyIfNeeded=False) |
Позволяет ожидать wxWidgets события, которые будут посланы в середине длительного процесса, который иначе мог бы блокировать систему работы с окнами. Возвращает True, если ожидаются события для обработки, иначе возвращает False. Если True, параметр onlyIfNeeded вынуждает процесс уступать, если в очереди есть события для обработки. Если параметр — False, то это — ошибка вызвать Yield рекурсивно (?). Есть также глобальная функция wx.SafeYield(), которая препятствует пользователю вводить данные в течение выполнения задачи (временно отключая пользовательские виджеты ввода данных). Это препятствует пользователю делать что-то, что нарушило бы состояние выполняющейся задачи. |
Другой метод для управления событиями состоит в том, чтобы создать свои собственные типы событий, которые соответствуют специфическим особенностям вашего приложения и виджетов. В следующем разделе, мы обсудим, как создать собственные события.
Как создать собственные события?
Хотя это большая тема, этот раздел — самое очевидное место, чтобы рассмотреть создание собственных событий. При первом чтении, вы можете пропустить этот раздел, и вернуться к нему позже. В дополнение к различным классам событий, поставляемым wxPython, вы можете создать ваши собственные события. Вы можете создавать их в ответ на обновление данных или другие изменения, которые являются специфическими для вашего приложения, и объекты события должны содержать ваши дополнительные данные. Другая причина создавать собственны класс событий может состоять в том, чтобы поддержать собственный виджет. В следующем разделе, мы рассмотрим пример создания собственного виджета.
Определение своего события для своего виджета
На рисунке 3.9 изображен виджет — панель, содержащая две кнопки. Пользовательское событие TwoButtonEvent вызывается только после того, как пользователь щелкнул обеими кнопками. Событие содержит количество нажатий кнопок. Здесь показывается, как новое событие command может быть создано из низкоуровневых событий – в данном случае, из событий left button down на каждой кнопке.
Рисунок 3.9
Для создания собственного события выполните следующие шаги:
-
Определите новый класс, производный от wx.PyEvent. Если вы хотите, чтобы событие обрабатывалось как команда, то создайте событие как подкласс wx.PyCommandEvent.
- Создайте тип события и биндер, чтобы связать событие с определенными объектами.
-
Добавьте код, который позволяет создавать объекты нового класса событий, и вводит эти объекты в систему обработки событий, используя метод ProcessEvent(). Как только событие создано, вы можете связывать его с обработчиками как любые другие события wxPython. В листинге 3.5 показан код для управления виджетом.
Листинг 3.5 Построение собственного виджета с двумя кнопками
1 import wx 2 3 class TwoButtonEvent(wx.PyCommandEvent): 4 def __init__(self, evtType, id): 5 wx.PyCommandEvent.__init__(self, evtType, id) 6 self.clickCount = 0 7 8 def GetClickCount(self): 9 return self.clickCount 10 11 def SetClickCount(self, count): 12 self.clickCount = count 13 14 myEVT_TWO_BUTTON = wx.NewEventType() 15 EVT_TWO_BUTTON = wx.PyEventBinder(myEVT_TWO_BUTTON, 1) 16 17 class TwoButtonPanel(wx.Panel): 18 def __init__(self, parent, id=-1, leftText="Left", 19 rightText="Right"): 20 wx.Panel.__init__(self, parent, id) 21 self.leftButton = wx.Button(self, label=leftText) 22 self.rightButton = wx.Button(self, label=rightText, 23 pos=(100,0)) 24 self.leftClick = False 25 self.rightClick = False 26 self.clickCount = 0 27 self.leftButton.Bind(wx.EVT_LEFT_DOWN, self.OnLeftClick) 28 self.rightButton.Bind(wx.EVT_LEFT_DOWN, self.OnRightClick) 29 30 def OnLeftClick(self, event): 31 self.leftClick = True 32 self.OnClick() 33 event.Skip() 34 35 def OnRightClick(self, event): 36 self.rightClick = True 37 self.OnClick() 38 event.Skip() 39 40 def OnClick(self): 41 self.clickCount += 1 42 if self.leftClick and self.rightClick: 43 self.leftClick = False 44 self.rightClick = False 45 evt = TwoButtonEvent(myEVT_TWO_BUTTON, self.GetId()) 46 evt.SetClickCount(self.clickCount) 47 self.GetEventHandler().ProcessEvent(evt) 48 49 50 class CustomEventFrame(wx.Frame): 51 def __init__(self, parent, id): 52 wx.Frame.__init__(self, parent, id, 'Click Count: 0', 53 size=(300, 100)) 54 panel = TwoButtonPanel(self) 55 self.Bind(EVT_TWO_BUTTON, self.OnTwoClick, panel) 56 57 def OnTwoClick(self, event): 58 self.SetTitle("Click Count: %s" % event.GetClickCount()) 59 60 if __name__ == '__main__': 61 app = wx.PySimpleApp() 62 frame = CustomEventFrame(parent=None, id=-1) 63 frame.Show() 64 app.MainLoop()
(1) Класс для события обьявляется как подкласс wx.PyCommandEvent. Для создания новых классов событий нужно использовать классы wx.PyEvent и wx.PyCommandEvent, чтобы создать прослойку между классами C++ и вашим кодом Python. Если вы попробуете использовать wx.Event непосредственно, wxPython не сможет увидеть новые методы вашего подкласса при обработке события, потому что обработчики событий C++ не знают о подклассе Python. Если Вы используете wx.PyEvent, ссылки на события Python сохраняются и позже передаются обработчикам непосредственно, позволяя использоваться части Python кода.
(2) Глобальная функция wx.NewEventType() похожа на wx.NewId(). Она возвращает уникальный идентификатор для типа события. Это значение уникально идентифицирует тип события для системы обработки событий.
(3) Объект binder создается, используя новый тип события как параметр. Второй параметр – число из диапазона от 0 до 2, представляющее количество идентификаторов wxId, ожидаемых методом wx.EvtHandler.Bind(), чтобы определить, какой объект является источником события. В нашем случае, есть один ID, представляющий виджет, который генерирует событие.
(4) Чтобы создать новое высокоуровневое событие типа command, программа должна ответить на определенные низкоуровневые события, например, нажатие мыши на каждой кнопке. В зависимости от того, какая кнопка нажата, события связываются с методами OnLeftClick() и OnRightClick(). Обработчики устанавливают логические значения, указывая, что кнопка была нажата.
(5) (6) Вызов Skip() заставляет продолжить обработку события. Обычно, все низкоуровневые события должны вызывать Skip(), чтобы не блокировать возможную обработку по умолчанию.
Мы не использовали связь с событием wx.EVT_BUTTON, чтобы показать вам, что случится, если не вызвать Skip(). Чтобы увидеть различие в поведении, закомментируйте строку (5) или (6).
(7) Если и левая и правая кнопки нажаты, создается новое событие. Тип события и идентификатор виджета — параметры конструктора события. Как правило, единственный класс события может иметь больше чем один тип события, хотя в этом примере тип единственный.
(8) Вызов ProcessEvent() вводит новое событие в систему обработки событий, как описано в разделе 3.4.1. Вызов GetEventHandler() возвращает объект wx.EvtHandler. В большинстве случаев, возвращаемый объект – это объект виджета.
(9) Собственное событие связывается точно так же как любое другое событие, в этом случае используя объект binder, созданный в строке (3).
(10) Обработчик события в этом примере изменяет заголовок окна, чтобы отобразить новое количество щелчков.
Создание событий — важная часть настройки wxPython.
Резюме
- Приложение wxPython управляется событиями. Большую часть времени приложение проводит в главном цикле, ожидая события и посылая их соответствующим обработчикам.
-
Все события wxPython –классы производные от wx.Event. Низкоуровневые события типа щелчка мыши, используются, чтобы создать события более высокого уровня типа нажатия кнопки или выбора пункта меню. Эти высокоуровневые события — подклассы класса wx.CommandEvent. Большинство классов событий имеют разделение на категории по типам событий, которые могут использовать тот же самый набор параметров.
-
Чтобы определить связьи между событиями и функциями, wxPython использует объекты класса wx.PyEventBinder. Есть много предопределенных объектов этого класса, каждый объект соответствует определенному типу события. Каждый виджет wxPython — подкласс wx.EvtHandler. Класс wx.EvtHandler имеет метод Bind(), который обычно вызывается при инициализации объекта с параметрами event binder и функцией обработчиком. В зависимости от типа события, метод Bind() может потребовать дополнительные параметры.
- События сначала посылают объекту, который произвел их, чтобы найти биндер, который связан с обработчиком. Если событие — команда, событие распространяется вверх по контейнерной иерархии, пока не найдется виджет, который имеет обработчик для этого типа события. Как только обработчик найден, он выполняется, и на этом обработка события останавливается, если только обработчик не вызвал метод Skip(). Вы можете использовать метод Skip(), чтобы позволить вызов нескольких обработчиков для обработки единственного события, или заставить выполнить обработку по умолчанию. Определенными аспектами главного цикла можно управлять, используя методы wx.App.
-
В wxPython могут быть созданы собственные события, которые будут генерироваться как часть поведения собственного виджета. Собственные события — подклассы wx.PyEvent, собственные события команды — подклассы wx.PyCommandEvent. Чтобы создать собственное событие, должен быть определен новый класс, и должен быть создан объект binder для каждого типа события нового класса. Наконец, событие должно быть сгенерировано где-нибудь в системе, используя метод ProcessEvent().
- В этой главе, мы рассмотрели важные объекты вашего приложения wxPython. В следующей главе, мы покажем вам полезный инструмент, который поможет вам разрабатывать приложения wxPython.
Перевод: Володеев Сергей
Книги/WxPythonInAction/Работа в среде управляемой событиями (последним исправлял пользователь alafin 2010-05-30 07:20:57)
Содержание:
- Случайные события и методы и алгоритмы их решения
- Определение вероятности события. Непосредственное вычисление вероятностей
- Классическое определение вероятности
- Геометрическое определение вероятности
- Теоремы сложения вероятностей
- Теоремы умножения вероятностей
- Вероятность наступления по крайней мере одного события
- Формула полной вероятности и формула Байеса
- Схема испытаний с повторениями
- Независимые испытания
- Формула Бернулли
- Наивероятнейшее число
- Локальная теорема Лапласа
- Формула Пуассона
- Интегральная теорема Лапласа
- Отклонение относительной частоты от вероятности
- Производящая функция
- Всё о случайных событиях
- Вероятность несовместных событий.
- Задача пример №156
- Вероятность двух событий
- Задача пример №157
- Случайное событие
- Элементарные случайные события
- Достоверное и невозможное событие
- Отношения между событиями
- Операции над событиями
- Случайные события и как их решать
- Элементы комбинаторики
- Классическое определение вероятности
- Статистическая вероятность
- Геометрическая вероятность
- Теорема сложения вероятностей
- Теорема умножения вероятностей
- Формула полной вероятности
- Последовательные независимые испытания
- Формула Бернулли
- Формула Пуассона
- Локальная теорема Муавра-Лапласа
- Интегральная теорема Муавра-Лапласа
- Элементы теории множеств
- Операции над множествами
- Элементы комбинаторики
- Понятие о случайном событии. Виды событий
- Свойства операций над событиями
- Классическое определение вероятности
- Свойства вероятностей
- Статистическое определение вероятности
- Геометрические вероятности
- Аксиоматика теории вероятностей
- Условные вероятности
- Формула умножения вероятностей
- Формула полной вероятности
- Формула Байеса
- Независимые события
- Пример попарно независимых случайных событий, которые не является независимыми в совокупности.
- Схема Бернулли
- Асимптотические формулы в схеме Бернулли
- Закон Пуассона
- Локальная теорема Муавра-Лапласа
- Интегральная теорема Муавра-Лапласа
- Отклонение относительной частоты от теоретической вероятности
Теория вероятности устанавливает математические отношения между случайными событиями, происходящими вокруг, и вероятностью их наступления. При помощи этих отношений вероятность наступления события оценивается на основе вероятности более простых событий.
Случайные события и методы и алгоритмы их решения
Испытание — реальный или вымышленный эксперимент (выполняемый при определенной неизменной совокупности условий), результаты которого поддаются наблюдению.
Событие — результат испытания.
Если в результате испытания некоторое событие непременно произойдет, то оно называется достоверным и обозначается буквой Событие, которое в данном испытании не может произойти, называется невозможным и обозначается буквой
Если в результате испытания некоторое событие может произойти, а может не произойти, то оно называется случайным. Случайные события обозначаются буквами
Случайные события, которые нельзя разложить на простейшие, называются элементарными. Возможное элементарное событие — это каждый из возможных результатов отдельного испытания.
Пространство элементарных событий — множество возможных элементарных событий, каждым из которых может закончиться испытание. Если обозначим возможные элементарные события, то это множество можно записать в виде Пространство может содержать конечное, счетное или несчетное множество значений.
Случайному событию А, которое может произойти в результате испытания, можно поставить в соответствие некоторое множество элементарных событий, которые способствуют появлению этого события: которое является подмножеством
Сумма событий. Событие А называется суммой событий В и С, то есть или если при испытании происходит по крайне мере одно из этих событий. Множество элементарных событий, составляющих событие А, получают объединением множеств элементарных событий, составляющих события В и С. Аналогично определяется сумма событий.
Произведение событий. Событие А называется произведением событий В и С, то есть или если в результате испытания происходят как событие В, так и событие С. Множество элементарных событий, составляющих событие А, определяется как пересечение множеств, составляющих события В и С. Аналогично определяется произведение событий.
События В и С в данном испытании называются несовместными, если соответствующие им множества элементарных событий не содержат одинаковых элементов: Это означает, что когда одно из событий произошло, второе событие произойти не может.
События В и С называются равновозможными в данном испытании, если есть основание считать, что ни одно из них не является объективно более возможным, чем другое.
События в данном испытании образуют полную группу событий, если они несовместны и в результате испытания непременно произойдет по крайней мере одно из них, а следовательно, их сумма является достоверным событием:
События и называются противоположными, если они несовместны и образуют полную группу событий, то есть и
Примеры решения задач:
Пример 1. Партия состоит из деталей 1-го, 2-го и 3-го сорта, а также бракованных. Детали тщательно перемешаны. Из партии наугад берут одну деталь. Используя очевидные обозначения, рассмотрим события: Какое из событий образует с событиями и полную группу?
Решение. Согласно определению, для полной группы событий должно выполняться соотношение Достоверному событию соответствует все пространство элементарных событий
В рассматриваемом испытании пространство состоит из четырех элементарных событий: деталь может быть 1-го, 2-го, 3-го сорта или бракованной, то есть Найдем множество элементарных событий, в него включают элементарные события соответствующих событий, причем одинаковые элементарные события берут один раз. Следовательно, Для того, чтобы дополнить это множество до необходимо прибавить к сумме событий событие так как множество его элементарных событий содержит
Пример 2. Определить событие где события и испытание, в результате которого они произошли, заданы условиями примера 1.
Решение. Согласно условию, имеем пространство элементарных событий Найдем множества элементарных событий и По определению противоположных событий а следовательно, множества элементарных событий для и дополняют соответственно множеству элементарных событий и Следовательно, Тогда Пересечение любых множеств содержит только общие для них элементы, а поэтому Во множество элементарных событий для входят элементарные события: «деталь 3-го сорта» или «деталь бракованная».
Определение вероятности события. Непосредственное вычисление вероятностей
Определение вероятности
Вероятностью события А называется числовая мера объективной возможности наступления этого события в определенном испытании. Обозначается такая вероятность
Свойства вероятности
1. Вероятность достоверного события
2. Вероятность невозможного события
3. Вероятность любого случайного события
Классическое определение вероятности
Вероятностью случайного события А называется отношение количества элементарных событий которые способствуют появлению этого события (составляют множество его элементарных событий), к общему количеству равновозможных элементарных событий, образующих пространство элементарных событий
Чтобы вычислить вероятность события А по этой формуле, нужно найти количество элементарных событий в пространстве а также количество их во множестве, которое соответствует событию А. Для этого используют формулы комбинаторной математики.
Пусть конечное неупорядоченное множество состоит из элементов. Выполним такие испытания:
1. Упорядочим данное множество, пронумеровав все его элементы. Тогда элементарным событием в испытании будет произвольная перестановка из элементов, а количество возможных перестановок будет равно
2. Разобьем множество на упорядоченные подмножества, которые содержат по элементов и отличаются между собой или порядком, или элементами. Тогда элементарным событием в испытании будет произвольное размещение из элементов по Количество таких размещений
3. Разобьем множество на неупорядоченные подмножества, которые содержат по элементов и отличаются между собой по крайней мере одним элементом. Тогда элементарным событием в испытании будет сочетание, а количество таких сочетаний
4. Берм из множества наугад элементов с возвращением. Тогда в фиксированном подмножестве каждый элемент может повторяться раз. Элементарным событием в испытании будет размещение из элементов по с повторением, а количество таких размещений
Пусть конечное множество из разных элементов разбито на подмножеств, в каждом из которых содержится элементов, причем Из каждого подмножества наугад берем элементов без возвращения. Тогда элементарным событием будет произвольное сочетание элементов. Количество таких сочетаний
если их порядок существенный.
Пусть конечное множество из разбито на подмножеств, в каждом из которых содержится одинаковых элементов, причем Упорядочим это множество. Тогда элементарным событием будет произвольная перестановка элементов с повторением, а число элементарных событий
Геометрическое определение вероятности
Если пространство элементарных событий можно представить в виде некоторого геометрического образа, а множество элементарных событий для события А — как часть этого геометрического образа, то вероятность события А определяется как отношение мер этих множеств: При этом считается, что вероятность попадания в некоторую часть геометрического образа пропорциональна мере этой его части.
Статистическое определение вероятности
Статистической вероятностью события А называется отношение количества испытаний, в которых событие А произошло, к общему количеству проведенных испытаний
Нахождение статистической вероятности связано с проведением испытаний, поэтому она называется еще частостью, или относительной частотой, события.
Примеры решения задач
Пример 1. Партия состоит из 10 стандартных и 5 нестандартных деталей. Из партии наугад берут 5 деталей. Найти вероятность того, что среди взятых деталей 3 оказались стандартными.
Решение. Событие А — «среди 5 деталей 3 стандартные, а 2 нестандартные». Детали берутся наугад, поэтому возможным элементарным событием является любая группа из 5 деталей. Чтобы определить, к какому типу подмножеств принадлежат эти группы, рассмотрим одну из них. Пусть в группе оказалось 2 стандартных и 3 нестандартных детали, то есть имеем Группа не изменилась — в ней как было, так и осталось 2 стандартных детали. Следовательно, порядок в группе несущественный, поэтому они принадлежат к сочетаниям. Все элементы события равновозможные, для вычисления вероятности используем формулу классического определения вероятности.
Общее количество элементарных событий
Чтобы вычислить количество элементарных событий, которые составляют событие А, мыслим так: 3 стандартных детали из 10 можно выбрать способами, а 2 нестандартных из 5 — способами. Следовательно,
Окончательно получаем:
Пример 2. По условиям примера 1 найти вероятность указанного события, если детали берутся с возвращением.
Решение. Событие А — «среди 5 взятых деталей 3 оказались стандартными, а 2 бракованными». Детали берутся с возвращением, каждая из них может быть взята повторно, поэтому элементарное событие — размещение с повторением, общее количество элементарных событий Определим Три стандартных детали из 10 можно выбрать способами, 2 нестандартные из 5 можно выбрать способами, то есть имеем 25 000 способов. Кроме того, нужно учитывать, что таких групп может быть Тогда Окончательно получим:
Пример 3. В течение смены приемщик принял в ремонт 10 часов одной и той же марки от 10 разных лиц и перед окончанием смены наугад разложил их подряд на круглой полке. Найти вероятность того, что трое часов, принадлежащие определенным лицам, оказались рядом.
Решение. Событие А — «трое часов, принадлежащие определенным лицам, оказались рядом». Все 10 часов раскладывались наугад, поэтому они могли разместиться в произвольном порядке. Следовательно, возможное элементарное событие — перестановка. Общее количество элементарных событий равно количеству перестановок из 10 элементов. Все они равновозможные и несовместные. Согласно сказанному Чтобы вычислить соединим трое часов определенных лиц в одну группу. Тогда для события А будет перестановок среди 7 часов, которые остались; перестановки будет в группе отобранных часов, а кроме того, группа из 3 часов может быть размещена в любом из 7 промежутков между 7 часами, которые остались. Следовательно,
Пример 4. Набор номера билета из трех цифр, который выиграет, выполняется трехразовым автоматическим бросанием из ящика одного за другим трех жетонов из общего количества 9 жетонов, пронумерованных цифрами от 1 до 9. Найти вероятность того, что набранный номер не содержит цифры 7.
Решение. Событие А — «набранный номер не содержит цифры 7». Жетоны бросаются один за другим автоматически, поэтому возможное элементарное событие — произвольно число из трех цифр, образованное с помощью трех цифр, взятых из 9 данных цифр. Порядок цифр среди выбранных трех несущественный — важно только, чтобы среди них не было цифры 7. Элементарное событие — сочетание, а всего таких сочетаний Вычисляя рассмотрим 8 цифр (без цифры 7). Следовательно, Тогда
Пример 5. Двое лиц договорились встретиться в определенном месте в промежутке времени от до часов, а также про то, что тот, кто придет первым, будет ждать второго в течение часов. Найти вероятность того, что встреча состоится, если каждое лицо может прийти в произвольный момент времени
Решение. Событие А — «встреча состоится». Обозначим длину временного промежутка а моменты прихода каждого лица — и Тогда событие А состоится при условии где Изобразим эти условия на плоскости в системе координат Как видим из рис. 1.2 времени соответствует площадь квадрата а событию А — площадь шестиугольника Воспользовавшись геометрическим определением вероятности получим:
Пример 6. На двух смежных сторонах квадрата с длиной стороны, равной 1, наугад взято по точке. Найти вероятность того, что расстояние между этими точками не превысит .
Решение. Событие А — «расстояние между двумя наугад взятыми точками не превысит». Обозначим расстояние от точек, взятых на сторонах квадрата, до его вершины, которая является общей для этих сторон, через и Тогда расстояние между указанными точками Множество значений для и несчетное, причем значения каждой из этих переменных равновозможные на заданных отрезках. Для вычисления вероятности воспользуемся геометрической интерпретацией. Как элементарное событие рассматриваем Если и изменяются в указанных пределах, то множество является квадратом со стороной . Чтобы определить множество точек для события А, проведем линию На рис 1.3 представлено множество в котором заштриховано множество точек, соответствующих событию А. Мерой каждого из рассматриваемых множеств является соответствующая площадь, поэтому
Теоремы сложения вероятностей
Пусть событие А является суммой двух событий В и С. Тогда:
а) если события В и С несовместные, то
б) если события В и С совместные, то
События В и С называются зависимыми, если вероятность одного из них изменяется в зависимости от того, произошло второе событие или нет. В противном случае события называются независимыми. Вероятность события определена при условии, что событие произошло, называется условной и обозначается
Теоремы умножения вероятностей
Пусть событие А является произведением двух событий В и С. Тогда:
а) если события В и С независимые, то
б) если события В и С зависимые, то
Эти теоремы справедливы и для произведения событий.
Вероятность наступления по крайней мере одного события
Пусть в результате испытания могут произойти событий Нужно найти вероятность того, что произойдет по крайней мере одно из них. Обозначим это событие буквой А. Тогда противоположным будет событие которое состоит в том, что в результате испытания одновременно настали противоположные события Найдем вероятность события А через вероятность противоположного события:
Примеры решения задач
Пример 1. Партия содержит 12 стандартных и четыре нестандартных детали. Наугад берут три детали. Найти вероятность того, что среди взятых деталей:
1) не менее двух стандартных;
2) все три нестандартные;
3) по крайней мере одна стандартная.
Решение. 1) Пусть событие А — «среди трех взятых деталей не менее двух стандартных». Тогда его можно представить как сумму двух событий: — «среди трех взятых деталей две стандартные и одна нестандартная» и — «все три взятые детали стандартные». События и несовместны, поэтому получим:
Вероятности событий и найдем согласно классическому определению вероятности.
Следовательно,
2) Событие В — «все три взятые детали нестандартные». Это событие можно представить как произведение трех событий где -тая деталь нестандартная, Условием задачи не задано, что детали берутся с возвращением. Следовательно, взять три детали вместе — это то же самое, что брать их по одной без возвращения, а поэтому события зависимы. Согласно этому вероятность события В вычисляем так:
3) Событие С — «из трех деталей по крайней мере одна стандартная». Противоположное событие — «все три детали нестандартные». Вероятность этого события только что найдена: Окончательно получим:
Пример 2. Имеем 3 партии деталей. Первая партия состоит из 10 стандартных и 8 нестандартных деталей, вторая — из 15 стандартных и 4 нестандартных, третья — 20 стандартных и 5 нестандартных деталей. Из каждой партии берут по одной детали. Найти вероятность того, что среди взятых деталей:
1) только одна стандартная;
2) только две стандартные.
Решение. Пусть согласно условию из каждой партии взято по одной детали. При этом могут произойти события которые состоят соответственно в том, что деталь, которую взяли их первой, второй и третей партии оказалась стандартной.
1) Событие А — «только одна из трех деталей оказалась стандартной». Это событие можно представить так: Группа событий, суммой которых является событие А, несовместны между собой, а события в каждой группе независимые. Поэтому вероятность события А вычисляем так:
б) событие В — «только две детали из трех оказались стандартными». Представим это событие через события и противоположные к ним
Событие В представлено как сумма несовместных групп событий. В каждой группе события независимые. Найдем вероятность события В:
Пример 3. Перевозку грузов для предприятия обеспечивают два автохозяйства, которые с этой целью каждый день в первую смену должны выделять по одному автомобилю. Вероятность выхода автомобиля на линию в первом автохозяйстве равна 0,7, а во втором — 0,6. Найти вероятность того, что в первую смену на предприятии будет перевозка грузов.
Решение. Рассмотрим события: А — «на предприятии в первую смену будет перевозка грузов»; — «для перевозки грузов прибыл автомобиль из первого автохозяйства»; — «для перевозки грузов прибыл автомобиль из второго автохозяйства». Тогда События и совместные, поэтому Очевидно, что события и независимые и Окончательно получим:
Пример 4. Прибор состоит из трех узлов, которые работают независимо друг от друга, причем второй и третий узлы взаимозаменяемы. Вероятности выхода из строя узлов в заданном промежутке времени составляют соответственно 0,2; 0,3; и 0,4. Найти вероятность того, что в течение заданного времени прибор будет работать.
Решение. Рассмотрим события. А — «прибор работает в течение заданного времени»; — «первый узел работает»; — «второй узел работает»; — «третий узел работает». Событие А наступает, если работают первый и второй узлы, или первый и третий узлы, или все три узла вместе. Отсюда: По условию задачи имеем, что события и зависимые, а события и — совместные. Поэтому
Во время вычисления учтено, что условием задачи заданы вероятности противоположных событий.
Формула полной вероятности и формула Байеса
Пусть событие А может произойти только при условии наступления одного из несовместных событий которые образуют полную группу. Тогда вероятность события А определяется по формуле:
где — вероятность события — условные вероятности наступления события А.
Приведенная зависимость называется формулой полной вероятности.
Снова рассмотрим события которые образуют полную группу событий и попарно несовместные. Эти события будет называть гипотезами. Событие А может произойти одновременно с любым из событий Известны вероятности событий и условные вероятности того, что событие А произойдет. Известно, что в результате испытания событие А произошло. Необходимо с учетом этого переоценить вероятности гипотез Для этого используют формулу Байеса:
Примеры решения задач
Пример 1. Имеем партий деталей, по деталей в каждой. Известно, что среди деталей стандартных Из наугад взятой партии берем одну деталь. Найти вероятность того, что выбранная деталь: а) стандартная; б) нестандартная.
Решение. Обозначим события: — «деталь взята из -ой партии»» — «взятая деталь стандартная». События попарно несовместны и образуют полную группу. Событие А может наступить одновременно с некоторым событием Задача решается по форс=муле полной вероятности:
Вероятность события можно определить вычитанием из единицы вероятности события А, которая только что найдена.
Пример 2. На двух станках-автоматах производят одинаковые детали, которые поступают на транспортер. Продуктивность первого станка втрое больше, чем второго, причем первый станок производит нестандартную деталь с вероятностью 0,15, а второй — с вероятностью 0,2. Найти вероятность того, что наугад взятая с транспортера деталь будет стандартной.
Решение. Рассмотрим события: — «деталь произведена на первом станке»; — «деталь произведена на втором станке»; — «выбранная деталь стандартная». События и несовместные и образуют полную группу, что касается события А, то оно может произойти одновременно с каждым из этих событий. Условные вероятности наступления события А известны. Согласно условию продуктивность первого станка втрое больше, чем второго, находим По формуле полной вероятности получим:
Пример 2. Партию произведенных деталей проверяли два контролера. первый проверил 45%, а второй — 55% деталей. Вероятность дом=пустить ошибку во время проверки для первого контролера составляет 0,15, а для второго — 0,1. После дополнительной проверки в партии принятых деталей выявлена бракованная. Оценить вероятность ошибки для каждого контролера.
Решение. Рассмотрим события: — «деталь проверял первый контролер»; — «деталь проверял второй контролер»; — «выявлена бракованная деталь». События и несовместные и образуют полную группу. Событие произошло одновременно с одним из этих событий, вероятности которых необходим переоценить. Используем формулу Байеса.
Следовательно, более вероятно, что ошибку допустил первый контролер.
Пример 4. Имеем две партии одинаковых изделий. Первая состоит из 15 стандартных и 4 нестандартных, вторая- из 18 стандартных и 5 нестандартных изделий. Из наугад выбранной партии взято одно изделие, которое оказалось стандартным. Найти вероятность того, что второе наугад взятое изделие также будет стандартным.
Решение. Рассмотрим события: — «первое изделие взято из первой партии»; — «первое изделие взято из второй партии»; — «первое взятое изделие стандартное»; — «второе взятое изделие стандартное». По формуле полной вероятности находим вероятность события А:
По формуле Байеса вычисляем условные вероятности и
Вероятность события находим по формуле:
Условные вероятности такие:
Следовательно,
Схема испытаний с повторениями
Независимые испытания
Пусть проводится испытаний, в каждом из которых событие А может произойти, так и не произойти. Если эта вероятность в каждом испытании не зависит от того, произошло оно в других испытаниях или нет, то такие испытания называются независимыми относительно события А. Согласно определению испытания также независимые, если в каждом из них вероятность наступления события А одинакова, то есть равна одному и тому же числу. Вероятность того, что событие А произойдет в каждом из независимых испытаний, обозначают а вероятность наступления противоположного события Для решения задач на повторные независимые испытания используют такие формулы и теоремы.
Формула Бернулли
Вероятность того, что в независимых испытаниях, в каждом из которых вероятность событие А произойдет раз, вычисляется так:
Формула применяется, если
Наивероятнейшее число
Частота наступления события А в независимых повторных испытаниях называется наивероятнейшим числом (появления этого события), если ей соответствует наибольшая вероятность. Она определяется по формуле:
Распределение может иметь одно или два наивероятнейших числа.
Локальная теорема Лапласа
Вероятность того, что в независимых испытаниях, в каждом из которых событие А произойдет раз, представлена такой приближенной зависимостью:
Локальная теорема Лапласа дает возможность вычислять вероятности если и
Формула Пуассона
Если в каждом из независимых повторных испытаний а большое, то
Интегральная теорема Лапласа
Вероятность того, что событие А произойдет от до раз при проведении независимых испытаний, в каждом из которых событие А происходит с вероятность. представлена формулой:
где — функция Лапласа;
Значения функции Лапласа приводятся в специальных таблицах.
Отклонение относительной частоты от вероятности
Вероятность того, что при проведении независимых испытаний отклонение относительной частоты события А от его вероятности по модулю не превышает определяется по формуле:
Производящая функция
Пусть проводится независимых испытаний, в которых событие А происходит с вероятностью Тогда вероятность наступления этого события раз определяется с помощью производящей функции Если преобразовать правую часть функции и привести подобные члены, то коэффициент при определяет
Примеры решения задач
Пример 1. Из партии, в которой 12 стандартных и 4 нестандартных детали наугад берутся 3 детали с возвращением. Найти вероятность того, что среди взятых деталей:
1) все три стандартные;
2) не более одной нестандартной;
3) по крайней мере одна нестандартная.
Решение. имеет схему трех независимых испытаний. Пусть событие А — «взятая каждый раз деталь стандартная», тогда Вероятность будем вычислять по формуле Бернулли:
2) Событие «из трех деталей не более одной нестандартной» можно рассматривать так: взяли 3 стандартных детали либо 2 стандартных и одну нестандартную деталь. В определениях формулы Бернулли
3) Противоположным для данного будет событие «все три детали стандартные». Ему равносильно событие Вычислим эту вероятность:
Пример 2. Часть длинных волокон в партии хлопка составляет в среднем 0,6 от общего количества волокон. Сколько нужно взять волокон, чтобы наивероятнейшее число длинных волокон среди них было равным 40?
Решение. Воспользуемся формулой, по которой определяется наивероятнейшее число: Подставим сюда значения известных величин:
Задача имеет два решения: и
Пример 3. На каждые 40 отштампованных изделий в среднем выпадает 4 дефектных. Со всей продукции наугад взяли 400 изделий. Найти вероятность того, что среди них 350 изделий будут без дефектов.
Решение. Событие — «взято изделие без дефекта». По условию Проведено независимых испытаний. Решим задачу по формуле локальной теоремы Лапласа: Подставляя данные по условию задачи, получим:
По таблицам находим принимая во внимание, что — четная функция.
Следовательно,
Пример 4. Завод отправил на базу 1000 доброкачественных изделий. Во время пребывания в дороге каждое изделие может быть повреждено с вероятностью 0,003. Найти вероятность того, что на базу прибудут 3 поврежденных изделия.
Решение. Если событие — «изделие повреждено», то его вероятность Рассматривается схема независимых испытаний, Вероятность события достаточно мала, поэтому задачу решим по формуле Пуассона:
Выполняя вычисления, находим:
Пример 5. Зерна пшеницы прорастают с вероятностью 0,95. Найти вероятность того, что из 2000 посеянных зерен взойдет от 1880 до 1920.
Решение. Событие — «зерно пшеницы взошло». Его вероятность количество независимых испытаний Используем формулу интегральной теоремы Лапласа:
функция Лапласа, а далее выполним вычисления:
Значения функции Лапласа берутся из соответствующей таблицы.
Пример 6. Станок-автомат производит стандартную деталь с вероятностью 0,9. Из продукции берут партию деталей. Сколько деталей должно содержаться в партии, чтобы с вероятностью 0,9973 можно было утверждать: в партии отклонение относительной частоты появления нестандартной детали от вероятности ее производства не превышает 0,03? Определить возможное количество нестандартных деталей в партии при данных условиях.
Решение. Событие — «произведена нестандартная деталь». Имеем схему с независимыми испытаниями, в которой Воспользуемся формулой:
По таблицам находим
Определим количество нестандартных деталей в партии при данных условиях, решив неравенство:
Следовательно, в партии из 900 деталей будет от 63 до 117 нестандартных деталей.
Пример 7. Имеем три партии деталей. Первая состоит из 9 стандартных и 3 нестандартных; вторая — из 12 стандартных и 3 нестандартных; третья — из 18 стандартных и 9 нестандартных деталей. Из каждой партии наугад берут по одной детали. Найти вероятность того, что в партии будет 0, 1, 2, 3 стандартные детали.
Решение. Событие — «появление стандартной детали в каждом испытании». Обозначим через вероятности взятия стандартной детали из -той партии. Для вычисления вероятностей составим производящую функцию:
Следовательно,
Всё о случайных событиях
В повседневной жизни мы можем наблюдать различные события, многочисленные опыты, испытания и результаты наблюдений. Неразделимый результат опыта, испытания и наблюдения называется элементарным событием. Множество всех элементарных событий называется пространством элементарных событий (ПЭС) и обозначается буквой U. Например, обозначим через событие, что при бросании зары на верхней грани выпадет очко . Тогда .
Событием называется любое подмножество множества элементарных событий. Например, если событие А — «выпадение четного числа очков», то А = .
Если количество элементарных событий ПЭС равно , тогда количество элементарных подмножеств и количество возможных событий также . Так как каждое событие является подмножеством ПЭС, то действия, определенные над множествами, определяются аналогичным образом и для событий. При этом пустое множество будет невозможным событием, U является достоверным событием.
Результаты, принадлежащих хотя бы одному из событий А или В, называется объединением этих событий и пишется как A В. Результаты, принадлежащие как событию А, так и событию В, называются пересечением событий: А В.
События, не имеющие общих результатов, называются несовместными событиями. Если события А и В несовместные, то А В = .
Множество всех событий, не принадлежащих множеству А называются противоположным событием или дополнением: .
Если наступление события В порождает событие А, то событие В называется благоприятным событием для события А.
В опыте с равновозможными исходами вероятность события А равна отношению количества благоприятных исходов для этого события к количеству всех возможных исходов.
При решении задач на вероятность обратите внимание на следующее:
1. Для любого случайного события А справедливо .
2. Сумма вероятностей наступления элементарных событий равна 1: = 1
3. Справедлива формула .
Вероятность несовместных событий.
Для любых несовместных событий А U и В U справедливо равенство.
Эго правило называется правилом сложения вероятностей.
Задача пример №156
В мешке шары желтого, красного и белого цветов. Вероятность, того, что из мешка вытащат белый шар 0,25, красный шар — 0,3. Найдите вероятность того, что вытащенный шар желтый.
Решение:
если из мешка вытащить один шар, то вероятность того, что он будет красным или белым равна: Р(кр. или бел.) = 0,25 + 0,30 = 0,55. Появление желтого шара означает событие, при котором не появляется ни красный, ни белый шар. Значит, Р(желт.) = Р (не кр. или бел.). Вероятность наступления событий А или В с наступлениями других событий равна 1. Тогда Р(желт.) = 1 — Р (кр. или бел.) = 1 — 0,55 = 0,45.
Вероятность двух событий
В общем случае для любых событий А U и В U справедлива формула .
Задача пример №157
56% студентов института проживают в студенческом городке, 62% там только обедают, а 42% и проживают, и обедают в городке. Найдите вероятность, что случайно выбранный студент:
a) проживает, но не обедает в студенческом городке;
b) не проживает и не обедает в студенческом городке.
Решение:
а) пусть G ={студенты проживающие в городке}, Y ={ студенты, обедающие в городке}.
Из диаграммы видно, что пересечение равно = 0,42. Зная, что P(G) = 0,56, найдем = 0,56 — 0,42 = 0,14. Тогда = 0,62 — 0,42 = 0,20; сумма 0,14 + 0,42 + 0,20 = 0,76 показывает вероятность того, что выбранный студент проживает или обедает в городке.
b) вероятность, что студент не проживает и не обедает в городке равна = 1 — 0,76 = 0,24 .
Случайное событие
Человека окружает мир событий. Он часто замечает такой факт: одни события при реализации данного комплекса условий непременно происходят, другие же могут произойти, а могут и не произойти. Рассмотрим группу таких событий:
Про события мы вынуждены сказать, что они произойдут закономерно, а про события — что они могли произойти, но могло быть и иначе. Сравнение данных примеров позволяет ощутить случайность событий
Мы можем рассуждать так. Нас окружают события. Мы замечаем :
когда оно при реализации данного комплекса условий может произойти, а может и не произойти
Отсюда непосредственно следует определение понятия:
Случайным событием называется такой исход наблюдения или эксперимента, который при реализации данного комплекса условий может произойти, а может и не произойти.
Элементарные случайные события
Представим, что некоторый прямоугольник Е мы разрезали (рис. 4) на n прямоугольных пронумерованных карточек (i = 1, 2, 3, …, n). Допустим, после хорошей перетасовки одну карточку наугад вытаскиваем из всей стопки. При такой операции:
1) одно из событий «вытащена одна карточка» непременно произойдет;
2) при одном испытании вытаскивание любой из карточек проявляется в одном и только в одном исходе; скажем, если была вытащена карточка 17, т. е. произошло событие , то в это же время не могло произойти событие , состоящее в вытаскивании карточки с номером 5.
События состоящие в появлении карточки с номером i (i = 1, 2, 3, …, n) могут послужить примером элементарных событий, а прямоугольник Е — примером пространства элементарных событий, связанного с реализацией испытания S — вытаскиванием одной карточки после разреза прямоугольника Е на маленькие прямоугольники и вытаскивания случайной карточки после тщательной перетасовки. Этот пример позволяет геометрически иллюстрировать пространство Е и его элементы.
Пространство элементарных событий Е, определенное бросанием игральной кости, представляет события, где — «выпало i очков» (i = 1, 2, 3, 4, 5, 6).
Рассмотрим события (рис. 5):
А — «выпало четное число очков»;
В — «выпало не меньше 2 очков»;
С — «выпало не больше 2 очков».
А произошло, если произошло одно из элементарных событий Естественно назвать элементарными событиями, благоприятствующими событию А. Этот факт выразим символом
Тогда выходит, что
Поскольку есть некоторые из элементов пространства эту тройку удобно называть подпространством (частью) пространства Е. Значит, событие А можно рассматривать как подпространство ему благоприятствующих элементарных событий событие В — как подпространство ему благоприятствующих элементарных событий событие С — как подпространство ему благоприятствующих элементарных событий Если , не благоприятствует событию А, то пишем:
Реализация испытания S однозначно определяет пространство элементарных событий Е. Любое случайное событие Н, связанное с испытанием S, можно рассматривать как подпространство благоприятствующих этому событию элементарных событий пространства Е. Изобразить его можно некоторой фигурой, построенной из клеточек, символизирующих элементарные события, благоприятствующие событию Н.
Например, событие — «выпало меньше 3 очков» — может быть изображено одной заштрихованной фигурой (рис. 6), а событие — «выпало не больше 2 или не меньше 5 очков» — двумя фигурами (рис. 7).
Достоверное и невозможное событие
Рассмотрим следующий пример.
На трех карточках проставлены цифры 1, 2, 3. После перетасовки карточек по очереди выстраиваем их в один ряд. Получается трехзначное число
Пространство элементарных событий Е представляют события
Рассмотрим в аспекте пространства Е такие события:
Как складывается у нас представление о событии V?
1. Мы интуитивно догадываемся, что событие V в аспекте данного испытания невозможно.
2. Мы можем наглядно убедиться в том, что среди элементарных событий пространства Е нет ни одного события, благоприятствующего событию V.
Как складывается у нас представление о событии U1
1. Мы интуитивно догадываемся, что событие U в аспекте данного испытания достоверное.
2. Мы можем наглядно убедиться в том, что все элементарные события пространства Е благоприятствуют событию U.
Следовательно, невозможное событие V и достоверное событие U как бы крайние варианты случайного события вообще.
Наши рассуждения можем обобщить таким графом:
Таким образом, невозможное и достоверное события — это не абсолютные категории событий, а категории, связанные с некоторым конкретным испытанием S.
Отношения между событиями
Сравним следующие события:
А — «появление двух очков при бросании игральной кости»,
В — «появление четного числа очков при бросании игральной кости».
Замечаем следующее соотношение между событиями: если произошло А, то тем самым произошло и В. Тот факт, что «А влечет за собой В» (или «В является следствием А»), запишем:
(2.1)
Событие А является частью события В, поскольку событие В состоит в осуществлении трех элементарных событий: «появление 2 очков», «появление 4 очков», «появление 6 очков», а событие А — одним из них — «появлением 2 очков». Возможность представить события как подпространства пространства Е помогает геометрически проиллюстрировать соотношения А и В (рис. 8).
Сопоставим события: А — «появление герба при подбрасывании монеты»,
В—«непоявление цифры при подбрасывании монеты».
Если же монета не может укатиться и застрять в щели пола или встать на ребро, тогда если произошло А, то произошло и В, и в то же время если произошло В, то произошло и А. Символическая запись: Тогда запишем А=В и будем говорить, что события А и В равносильны.
Еще раз подчеркнем, что А будет частью события В только в том случае, когда элементарные события, представляющие событие А, принадлежат подпространству элементарных событий, представляющих событие В.
Операции над событиями
Мы уже убедились в том, что между событиями соблюдаются отношения, аналогичные отношениям «больше», «меньше» или «равно», как и между числами.
Теперь естественно ввести и операции над событиями.
Объединение
Пусть событию А благоприятствуют элементарные события (клетки) а событию В — элементарные события (рис. 10).
Пусть событию С благоприятствуют все элементарные события, которые представляют заштрихованные клетки.
Логично событие С называть объединением событий А и Б. Оно означает, что произошло или А, или В.
Пусть теперь событию А благоприятствуют элементарные события (клетки) событию В — элементарные события (рис. 11).
Пусть опять событию С благоприятствуют элементарные события, которые представляют заштрихованные клетки (рис. 11).
И на этот раз логично событие С считать объединением событий А и Б. Но поскольку благоприятствуют и А и Б, то на этот раз С означает, что произошло или А, или Б, или и то и другое вместе.
Оба случая (рис. 10 и 11) можно обобщить так:
Объединением событий А и В называется событие С, состоящее в наступлении по крайней мере одного из событий А и В.
Такое соотношение принято обозначать символом :
В общем случае:
Объединением событий называется событие А, состоящее в появлении хотя бы одного из событий (или или нескольких из них, или всех).
Символически:
(2.2)
Оперируя диаграммами подобного рода (см. рис. 11 и 10), можем убедиться, что для случайных событий имеют место закономерности :
Пересечение
Пусть событию А благоприятствуют элементарные события (клетки) а событию В — элементарные события (рис. 12).
Пусть событию С благоприятствуют элементарные события, которые представлены заштрихованными клетками (рис. 12).
Логично событие С называть пересечением событий А и В.
Оно означает, что произошло и А, и В.
В таком случае применяется символ
(2.3)
В общем случае пересечение событий определяется так:
Пересечением событий называется событие А, состоящее в одновременном исполнении всех событий .
Символически:
(2.4)
Рассмотрим такой пример:
А — «входящий в подъезд человек — мужчина», В — «входящий в подъезд человек светловолосый», С — «входящий в подъезд человек — светловолосый мужчина».
Событие С происходит только при одновременном исполнении событий А и Б, поэтому Еще пример.
Произвольно выбираем два двузначных числа. Определяем события:
А — «выбранные числа кратны 2»,
В — «выбранные числа кратны 3»,
С — «выбранные числа кратны 6».
Событие С происходит, если одновременно происходят события А и В. Если одно из событий А или В не произойдет, то не произойдет и С.
Пусть событию А благоприятствуют элементарные события (клетки) а событию В — (рис. 13).
Ясно, что совместное осуществление А и В невозможно: элементарных событий, благоприятствующих и тому, и другому событию, нет.
Два события А и В, пересечение которых — невозможное событие , называются несовместимыми событиями.
Как уже мы упомянули ранее, для таких событий определение объединения формулируется так:
Объединением двух несовместимых событий А и В называется событие С, осуществляющееся в появлении либо события А, либо события В.
Два события АиВ называются совместимыми, когда существует по крайней мере одно элементарное событие, благоприятствующее и событию А, и событию В.
Рассмотрим следующие пары событий:
— «выпадение герба при подбрасывании монеты»,
— «невыпадение герба при подбрасывании монеты»;
— «выздоровление больного»,
— «невыздоровление больного»,
— «появление новой кометы в текущем году»,
— «непоявление новой кометы в текущем году».
Естественно события в каждой из пар считать противоположными.
Установим два свойства, которым удовлетворяет любая из пар событий:
1. Объединение событий каждой пары — достоверное событие:
2. Пересечение событий каждой пары — невозможное событие:
Теперь можно ввести определение:
Если объединение событий АиВ — достоверное событие, а пересечение — невозможное событие, то события АиВ называются противоположными.
Если А и Б — противоположные события, то символически записываем это так:
(2.5)
Разумеется, на языке пространства элементарных событий противоположное событие А представляется дополнением события А в отношении всего пространства элементарных событий Е (рис. 14).
По этой ссылке вы найдёте полный курс лекций по теории вероятности:
Возможно вам будут полезны данные страницы:
Случайные события и как их решать
Операции над событиями:
В теории вероятностей рассматриваются случайные эксперименты — те эксперименты, результат которых нельзя точно предусмотреть. Такие эксперименты будем называть испытаниями.
Простейший результат испытания называется элементарным событием и обозначается Совокупность всех возможных элементарных событий испытания называется пространством элементарных событий и обозначается
Любое подмножество пространства элементарных событий называется случайным событием (см. рис. 1а). Элементарные события, которые входят в называются благоприятными для Само множество называется достоверным событием, пустое множество — невозможным событием.
Суммой событий А и В называется событие которое состоит из элементарных событий, которые принадлежат хотя бы одному из событий А или В (рис. 1б).
Произведением называется событие, которое состоит из элементарных событий, которые принадлежат одновременно А и В (рис. 1в).
Разностью событий называется событие, которое состоит из тех элементарных событий, которые входят в А и не входят в В (рис. 1г).
Событие называется противоположным событию А, если и
События образуют полную группу событий, если и
Пример 1.1.
В урне лежат 4 шара, пронумерованные цифрами 1, 2, 3, 4. Вытаскивают по одному два шара:
а) описать пространство элементарных событий;
б) записать элементарные события, благоприятные для события А, которое состоит в том, что вытащили два шара с четными номерами.
Решение
а) пространство элементарных событий:
б) событие
Элементы комбинаторики
При решении вероятностных задач часто используют элементы комбинаторики.
Пусть М — множество, которое содержит элементов.
Размещением из элементов по называется произвольное упорядоченное подмножество из элементов множества М. Число размещений из элементов по находится по формуле
Пример 1.2. Студенты изучают 10 дисциплин. Сколькими способами можно составить расписание на понедельник, если в этот день должно быть 3 разных дисциплины по расписанию?
Решение. По формуле (1.1) получим:
Размещением из элементов по называются перестановками. Разные перестановки отличаются только порядком элементов. Число перестановок из элементов равно произведению всех натуральных чисел от 1 до
Пример 1.3. Сколькими способами можно расставить на одной полке 6 разных книг?
Решение. Искомое количество способов равно количеству перестановок из 6 элементов, то есть
Таблица 1.1
Решение комбинаторных задач
Комбинацией (соединением) из элементов по называется произвольное подмножество из элементов из множества Порядок элементов в комбинациях несущественный. Количество комбинаций из элементов по находится по формуле
Условимся, что
Пример 1.4. В бригаде из 25 человек необходимо выбрать четырех для работы на определенном участке. Сколькими способами это можно сделать?
Решение. Поскольку порядок выбранных четырех человек не имеет значения, то это можно сделать способами. По формуле (1.3) находим
Классическое определение вероятности
Рассмотрим конечное пространство элементарных событий
— попарно несовместны и равновозможные элементарные события. Пусть некоторому событию А способствует из элементарных событий пространства
Вероятностью случайного события А называется отношение числа результатов испытания, благоприятных для А, к числу всех равновозможных и попарно несовместных результатов испытания:
Свойства вероятности:
1. Для каждого события справедливо неравенство
2. Вероятность достоверного события равна 1,
3. Вероятность невозможного события равна нулю
Пример 1.5.
Участники жеребьевки тянут из ящика жетоны с номерами от 1 до 100. Какая вероятность того, что номер наугад вытянутого жетона не содержит цифру 5?
Решение. А — выбор жетона с номером, который не содержит цифру 5; так как 19 жетонов содержат цифру 5.
Пример 1.6. В урне 5 белых и 7 черных шаров. Из урны наугад берут шесть шаров. Найти вероятность того, что:
1) все шесть шаров черные (событие А);
2) четыре шара черные и два белые (событие В).
Решение
1) число всех элементарных событий равно числу комбинаций из 12 по 6, то есть Находим число благоприятных событий. 6 черных шаров можно выбрать из 7 черных способами. Поэтому искомая вероятность равна
2) как и в 1), Находим число благоприятных событий. 2 белых шара можно выбрать из 5 белых способами, а 4 черных из 7 черных — способами. По правилу умножения получим Имеем
Статистическая вероятность
Пусть А — случайное событие, связанное с некоторым испытанием. Повторим испытание раз при одних и тех же условиях, и пусть при этом событие А появилось раз.
Отношение числа испытаний, в которых событие А появилось до общего числа проведенных испытаний, называется частотой события А
Частоту можно найти только после проведения испытаний. Во многих случаях относительная частота события А стабилизируется при большом Такие события называются статистически стойкими.
Пример 1.7. Отдел технического контроля выявил 5 бракованных книг в партии из случайно отобранных 100 книг. Найти относительную частоту появления бракованных книг.
Решение: Получим
Геометрическая вероятность
Пусть — некоторая область на прямой, плоскости или в пространстве. А — некоторая часть области В области наугад выбирают точку, считая, что выбор точек области равновозможный. Вероятность того, что выбранная точка принадлежит А, определяется равенством
где — мера (длина, площадь, объем)
Пример 1.8 Уставной фонд банка — ден. ед. — был случайным образом поделен на три части, в результате xguj образовалось три новых банка. Найти вероятность того, что ни один из банков не прекратит свое существование, если для их работы необходим уставной фонд не меньше, чем ден. ед. Вычислить при ден. ед.; ден. ед.
Решение. Пусть — уставной фонд 1-го банка,— уставной фонд 2-го банка, тогда — уставной фонд 3-го банка. Под случайным разделением отрезка на три части будем понимать его деление двумя точками, каждая из которых имеет на данном отрезке равномерное распределение.
Область возможных исходов
Область благоприятных исходов
Рис. 1. 1 Геометрическое изображение пространства и события к примеру 1.8.
Площадь области площадь области
Искомая вероятность Из последней формулы видно, что чем меньше уставной фонд тем меньше вероятность того, что новые банки не прекратят свое существование.
При ден. ед. ден. ед. получим
Теорема сложения вероятностей
Вероятность суммы двух событий равна суме вероятностей этих событий без вероятности их совместного появления:
Если события А и В несовместные ( то есть в результате испытания они не могут появится вместе), то
При решении задач часто вычисляют вероятность противоположного события а потом находят вероятность прямого события А по формуле
Пример 1.9 Найти вероятность того, что при бросании 2 игральных кубиков хотя бы один раз выпадет 6 очков.
Решение. А — появление 6 очков при бросании первого игрального кубика. В — появление 6 очков при бросании второго игрального кубика. Поскольку события А и В совместные, то
Условной вероятностью события А при условии, что состоялось событие В, называется величина
Условная вероятность имеет все свойства безусловной вероятности..
Пример 1. 10. В корзине 5 красных и 7 зеленых мячей. Из нее последовательно берут два мяча. Найти вероятность того, что второй мяч будет зеленым при условии, что первый мяч был зеленым.
Решение.
способ. Обозначим: А — первый мяч зеленый; В — второй мяч зеленый. Если произошло событие А, то в корзине осталось 11 мячей, среди которых 6 зеленых. Поэтому искомая вероятность
способ. Поскольку среди 12 мячей, которые лежат в корзине, 7 зеленых, то Для нахождения вычислим — общее количество исходов (совместного появления двух мячей любого цвета) по формуле Из этого числа события благоприятны исходы. Поэтому По формуле получим то есть получили тот же результат.
Случайные события А и В называются независимыми, если
Для независимых событий то есть наступление одного из двух независимых событий не влияет на вероятность второго.
События называются независимыми в совокупности, если для любых из них выполняется соотношение
Если это соотношение выполняется при то события называются попарно независимыми.
Теорема умножения вероятностей
Вероятность совместного появления двух событий равна вероятности одного из них, умноженной на условную вероятность другого при условии, что первое событие наступило:
Если события А и В независимые (то есть появление одного из них не изменяет вероятность появления другого), то
Для нахождения вероятности суммы независимых событий целесообразно переходить к противоположным событиям
или — вероятность наступления по крайне мере одного из событий
Пример 1.11. Студент пришел на экзамен, подготовив только 40 из 75 вопросов.. Экзаменатор поставил ему три вопроса. Какая вероятность того, что студент знает ответы на все эти вопросы?
Решение. А — студент знает ответы на все три вопроса; событие студент знает ответ на тый вопрос. Тогда события — зависимые, поэтому (поскольку вопросов осталось 73, а из них студент знает 38). Получим
Пример 1.12. В объединение входят три предприятия. Вероятность выполнить план для первого предприятия равна 0,8, для второго — 0,9, для третьего — 0,85. Найти вероятность таких событий:
1) А — договор выполнит только одно предприятие;
2) В — договор выполнят 2 предприятия;
3) С— договор выполнят все предприятия;
4) Д — договор не выполнит ни одно предприятие;
5) Е — договор выполнит по крайней мере одно предприятие.
а) пусть — договор выполнит -тое предприятие,
тогда
Формула полной вероятности
Если событие А может наступить только с одним из событий которые образуют полную группу попарно несовместных событий, то вероятность события А вычисляется по формуле полной вероятности
где — вероятность гипотезы
— условная вероятность события А при этой гипотезе,
С формулой полной вероятности тесно связана формула Байеса
где
Формула Байеса позволяет переоценить вероятности гипотез, принятых к испытанию по результатам уже проведенного испытания.
Пример 1.13. Изучаются результаты экзамена по математике в трех группах. В первой группе 25 студентов, из них 7 получили «отлично», во второй — 26 студентов, из них 9 получили «отлично», а в третьей соответственно — 24 и 10. Какая вероятность, что наугад выбранный студент получил а экзамене отличную оценку?
Решение. Пусть А — наугад выбранный студент на экзамене по математике получил отличную оценку. Это может случиться, когда студента выбрали из 1-ой группы (произошло событие ), или со 2-ой группы или из 3-ей группы По определению вероятности
Используем формулу полной вероятности
По условию задачи отсюда получим
Пример 1.14. первая бригада произвела 80 изделий, вторая — 120. В первой бригаде 2% изделий бракованные, а во второй — 5%. Детали поступают на общий конвейер. Наугад взятое с конвейера изделие оказалось бракованным. Какая вероятность, что оно произведено первой бригадой?
Решение. Обозначим события — выбранное изделие произведено той бригадой.
А — выбранное изделие бракованное.
По формуле Байеса получим:
Последовательные независимые испытания
Формула Бернулли
Вероятность того, что в независимых испытаниях успех настанет ровно раз, находится по формуле Я. Бернулли
где — вероятность появления успеха в каждом испытании;
— вероятность неудачи.
Число при котором вероятность наибольшая, называется наивероятнейшим числом наступления события А. Находят его по формуле — целая часть числа Если число — целое, то также будет наивероятнейшим числом наступления события А.
Пример 1.15. Налоговая инспекция дает официальную оценку того, что 20% всех лиц, которые возвращаются из-за границы, не декларируют весь товар, который облагается налогом. Если случайно отобрать 6 лиц которые возвращаются из-за границы, то какая вероятность того, что не менее двух из них не задекларируют товар, который облагаются налогом?
Решение. По условию
Но
Получим:
Пример 1.16. Батарея совершила 14 выстрелов по объекту, вероятность попадания в который равна 0,2. Найти наивероятнейшее число попаданий и вероятность этого числа попаданий.
Решение. По условию Получим
— целое число,
— также наивероятнейшее число. Найдем
Формула Пуассона
где
Для выражения которое рассматривается как функция двух переменных и составлена таблица значений, которая приведена в приложении Ж.
Формула Пуассона используется в задачах, которые принадлежат к редкостным событиям.
Пример 1.17. Вероятность попадания в цель при каждом выстреле равна 0,001. Найти вероятность не менее двух попаданий, если было сделано 5000 выстрелов.
Решение.
По условию следовательно
Локальная теорема Муавра-Лапласа
Вероятность того, что в независимых испытаниях успех настанет ровно раз, равна
где — четная функция.
Значения функции приведены в таблице приложения А, для
где — вероятность появления успеха в каждом испытании;
Пример 1.18. Фирма, которая проводит почтовые опросы, установила, что 40% получателей анкет возвращают их назад. Какая вероятность того, что ровно 80 семей вернут анкеты, если опрашивают 200 семей?
Решение. По условию тогда
Интегральная теорема Муавра-Лапласа
Вероятность того, что в независимых испытаниях число успехов находится между и равно
где
— нечетная функция.
Значения функции приведены в таблице приложения Б, для
Используя интегральную формулу Муавра-Лапласа, можно получить формулу
где — функция Лапласа;
— частота появления успеха;
— его вероятность;
— некоторое положительное число.
То есть вероятность того, что при независимых испытаниях по схеме Бернулли абсолютное значение отклонения относительной частоты события А от вероятности этого события не превышает числа для случая больших значений
Пример 1.19. Вероятность наступления события в каждом из 625 независимых испытаний равна 0,8. Найти вероятность того, что относительная частота наступления события отличается от вероятности по модулю не более чем на 0,04
Решение. По условию
Подставив эти данные в равенство (1.20), получим:
Элементы теории множеств
Понятие множества принадлежит к первобытным неопределяемым понятиям, поэтому оно может быть только в тот или иной способ разъяснено с помощью примеров или синонимов.
Множество — набор, совокупность некоторых объектов (которые называются его элементами), которые имеют общее для всех них характеристическое свойство. Множества принято обозначать заглавными буквами латинского алфавита, а его элементы — строчными буквами латинского алфавита. Запись означает, что элемент принадлежит множеству . Запись означает, что не является элементом множества .
По количеству элементов множества могут быть конечными, счетными и несчетными. Конечным называется множество, если существует такое натуральное число , что количество его элементов равна .
Множество является счетным, если между ним и множеством натуральных чисел можно установить взаимно однозначное соответствие, т.е. каждому элементу этого множества можно поставить в соответствие натуральное число, и наоборот — каждому натуральному числу можно поставить в соответствие один элемент множества, причем разным элементам соответствуют разные числа и разным числам соответствуют разные элементы.
Бесконечное множество, которое не является счетным, называется несчетным множеством.
Если конечное множество состоит из элементов то это записывают так: .
Определение. Пустым множеством называют множество, которое не содержит ни одного элемента, и обозначают его символом .
Определение. Универсальным множеством U называется совокупность всех множеств, которые могут рассматриваться в контексте определенной задачи.
Определение. Говорят, что множество содержится во множестве , если произвольный элемент множества принадлежит множеству и записывают это так .
Определение. Если и , то говорят, что множества и являются равными и обозначают
Равные множества содержат одинаковые элементы, записанные в произвольном порядке. Наряду с множествами рассматривают упорядоченные множества или упорядоченные наборы, то есть совокупность элементов, записанных в определенном порядке. Упорядоченное множество , которое состоит из элементов причем элемент стоит на первом месте, элемент — на втором, элемент — на третьем, записывают в виде .
Определение. Декартовым произведением множеств и называют набор упорядоченных пар : и обозначают .
Декартовым произведением множеств называется упорядоченный набор :
Операции над множествами
1. Объединением (суммой) двух множеств и называют множество которое состоит из всех элементов, принадлежащих либо множеству , либо множеству
2. Пересечением (произведением) двух множеств и называют множество которое состоит из всех элементов, принадлежащих множествам и одновременно.
3. Разницей множеств и называют множество которое состоит из всех элементов, которые принадлежат множеству и не принадлежат множеству .
4. Симметричной разницей множеств и называют множество
5. Дополнением к множеству называют множество
Свойства операций над множествами:
1. Коммутативность:
2. Ассоциативность:
3. Дистрибутивность:
4. Правила де Моргана:
5.
6.
7.
8.
9.
Элементы комбинаторики
Комбинаторика — раздел математики, который изучает конечные множества, способы создания подмножеств по определенным правилам и подсчет количества этих способов.
Правило суммы в комбинаторике. Если некоторый объект а можно выбрать n способами, а объект b — k способами, при этом никакой выбор а не совпадает ни с с каким из выборов b, то объект а или b можно выбрать n + k способами.
Правило произведения в комбинаторике. Если некоторый объект а можно выбрать n способами, а объект b — k способами, то упорядоченную пару (а, b) можно выбрать n • k способами.
Обобщенное правило произведения в комбинаторике. Если некоторый объект a1 можно выбрать n1 способами, а2 — n2 способами, …, аk — nk способами, то упорядоченный набор (a1, a2,…,ak) можно выбрать n1•n2• … • nk способами.
Пример. В продаже есть 10 разных конвертов и 7 разных марок одинаковой стоимости. Сколькими способами можно купить конверт с маркой?
Решение. Конверт с маркой можно рассматривать как упорядоченную пару (конверт, марка). Поскольку конверт можно выбрать 10 способами, а марку — 7, то конверт с маркой можно выбрать 70 способами.■
Определение. Любое упорядоченное множество, которое состоит из n разных элементов, называется перестановкой без повторений из n элементов.
Количество перестановок из n элементов обозначается Рn.
Количество перестановок из n элементов равняется n!
Доказательство
. Произвольная перестановка является упорядоченным множеством. Очевидно, что
первый элемент можно выбрать n способами. Тогда второй элемент уже можно выбрать n — 1 способами, третий — n — 2 способами и т.д. Последний элемент можно выбрать только одним способом. Тогда согласно с обобщенным правилом произведения в комбинаторике количество перестановок из n элементов равняется
Следовательно,
Теорема доказана.
Пример. Сколько пятизначных чисел, которые не содержат одинаковых цифр, можно составить из цифр 1, 2, 3, 4, 5?
Решение. Каждое число можно считать упорядоченной пятеркой. Поэтому количество разных пятизначных чисел, которые складываются из пяти разных цифр, равняется Р5 = 5! = 120.■
Определение. Произвольное упорядоченное k-элементное подмножество множества, которое содержит n разных элементов, называется размещением из n по k.
Количество всевозможных размещений из n по k обозначается
Теорема. Количество размещений из n по k равняется
Доказательство. Для упорядоченного k-элементного множества первый элемент можно выбрать n способами, второй — n — 1 способами, третий — n — 2 способами, …, а k-й элемент — n — к + 1 способами. Поэтому общее количество равняется
Окончательный результат
Теорема доказана.
Пример. Сколько разных трехзначных чисел, которые не содержат одинаковых цифр, можно составить из цифр 1, 2, 3, 4, 5, 6, 7 ?
Решение. Трехзначное число — это упорядоченная тройка. Поскольку среди цифр, которые разрешается использовать, нет цифры 0, то количество трехзначных чисел равняется■
Определение. Произвольное k-элементное подмножество множества, которое содержит n разных элементов, называется сочетанием или соединением из n по k.
Количество всевозможных сочетаний из n по k обозначается или
Теорема. Количество сочетаний из n по k равняется
Доказательство.
Каждому сочетанию из n по k отвечает k! размещений из n по k.
Поэтому
Теорема доказана.
Пример. В скольких точках пересекаются диагонали выпуклого n-угольника, если известно, что никакие три диагонали не пересекаются в одной точке?
Решение. Каждым четырем вершинам отвечает одна точка пересечения диагоналей, и наоборот — одной точке пересечения диагоналей отвечает четыре вершины. Поэтому количество всех точек пересечения диагоналей равняется
■
Свойства сочетаний:
1.
Доказательство.
Свойство доказано.
2.
Доказательство.
3.
Доказательство.
Свойство доказано.
4.
5.
Доказательство.
Доказательство. этого свойства опирается на предыдущее свойство.
В формулу подставляем
Тогда получаем:
Свойство доказано.
6.
Доказательство.
В этом доказательстве мы будем также использовать свойство 4. В частности, считаем Имеем
Свойство доказано.
7.
Доказательство.
Это доказательство будет опираться на свойство 6. Распишем сумму
Все слагаемые со знаком плюс оставляем слева, а отрицательные переносим вправо. Получаем
Свойство доказано.
Теорема. Количество всех подмножеств n-элементного множества (включая само множество и пустое множество) равняется
Доказательство.
Количество всех подмножеств равняется Согласно свойству 6 эта сумма равняется
Пример. В комнате есть n лампочек. Сколько всего есть разных способов освещения комнаты?
Решение. В контексте этой задачи лампы считаем разными элементами. Комната может освещаться одной лампой, двумя, …, n, а также может совсем не освещаться. Поэтому количество разных способов освещения комнаты равняется количеству всех подмножеств n-элементного множества, а именно ■
Определение. Упорядоченное множество, которое состоит из n1 элементов первого типа, n2 элементов второго типа, …, nk элементов k-го типа (n1 + n2 + … + nk = n), называется перестановкой с повторениями из n элементов по n1, n2, …, nk.
Количество всевозможных перестановок с повторениями из n по n1, n2, …, nk будем обозначать
Теорема. Количество перестановок с повторениями из n по n1, n2, …, nk равняется
Пример. Сколько разных слов (в том числе без звучания и без содержания) можно создать, переставляя буквы в слове «математика»?
Решение. Искомое количество обозначим через N. Созданные слова можно считать упорядоченными множествами. Слово «математика» состоит из 10 букв, среди которых две буквы «м«, три буквы «а«, две буквы «т«, одна буква «е«, одна буква «и» и одна буква «к«.
Искомое количество слов равняется количеству перестановок с повторениями из 10 по 2, 3, 2, 1, 1, 1, то есть
■
Определение. Произвольное упорядоченное k-элементное множество, элементы которого принадлежат к одному из n типов (т.е. элементы могут повторяться, но максимальное количество разных элементов равняется n), называется размещением с повторениями из n по k.
Количество всевозможных размещений с повторениями из n по k обозначается
Теорема. Количество размещений с повторениями из n по k равняется nk.
Доказательство.
Первый элемент этого упорядоченного множества можно выбрать n способами, второй – n способами, …, k-й — также n способами. Поэтому по правилу произведения искомое количество равняется nk.
Пример. Сколькими способами n разных предметов можно расположить в k ячейках?
Решение. Каждый из n предметов может быть размещен в одной из k ячеек, то есть его можно отнести к одному из k типов. Поскольку предметы разные, то каждому размещению предметов будет отвечать упорядоченное множество из n элементов, каждый элемент которого может быть отнесен к одному из k типов. Количество всевозможных расположений равняется количеству размещений с повторениями из n по k, то есть ■
Определение. Произвольное k-элементное множество, элементы которого принадлежат к одному из n типов (т.е. элементы могут повторяться, но максимальное количество разных элементов равняется n), называется сочетанием с повторениями из n по k.
Количество сочетаний с повторениями из n по k обозначается
Теорема. Количество сочетаний с повторениями из n по k равняется
Доказательство. Рассмотрим произвольное сочетание с повторениями из n по k Поскольку элементы можно менять местами, то в этом множестве можно сначала записать элементы первого типа, потом элементы второго типа и т.д. Пусть множество содержит k1 элементов первого типа, k2 элементов второго типа, …, kn элементов n-го типа (k1 + … + kn = k). Рассмотрим упорядоченное множество, которое состоит из k нулей и n-1 единицы. В этом множестве сначала запишем k1 нуль, потом единицу, далее запишем k2 нулей, после них – единицу и т.д., в конце – kn нулей. Количество сочетаний с повторениями из n по k равняется количеству таких упорядоченных множеств, а именно ■
Пример. Сколькими способами n одинаковых предметов можно разместить в k ячейках?
Решение. Каждый из n предметов может быть размещен в одной из k ячеек, т.е. может быть отнесен к одному из k типов. Поскольку предметы одинаковые, то каждому размещению предметов будет отвечать неупорядоченное множество из n элементов, каждый элемент которого может быть отнесен к одному из k типов. Количество всевозможных расположений равняется количеству всевозможных сочетаний с повторениями из k по n, т.е. ■
Пример. Найти количество целых неотрицательных решений уравнения
Решение. Представим число 10 в виде Рассмотрим некоторое конкретное решение Каждое из значений можно представить как сумму единиц. Тогда наше уравнение можно записать так:
Количество единиц слева и справа равняется 10. Каждую единичку справа можно отнести к одному из значений Введем такой алгоритм: единиц отнесем к 1-му типу, единиц отнесем ко второму типу, …, и, наконец, единиц отнесем к пятому типу. Поскольку все единички являются разными элементами, то количество всевозможных решений уравнения равняется количеству сочетаний с повторениями из 5 по 10, т.е. ■
Пример. На курсе учатся 100 студентов. Причем 70 из них знают английский язык, 25 — немецкий, 15 — французский, 10 — английский и немецкий, 8 — английский и французский, 7 — немецкий и французский. Сколько студентов знает все три языка, если известно, что каждый студент знает по крайней мере один из трех языков.
Решение. Обозначим через A множество студентов, которые знают английский язык, B — немецкий, C — французский. Тогда
Следовательно,
все три языка знает 5 студентов. ■
Понятие о случайном событии. Виды событий
Рассматриваем случайное явление (проводится стохастический эксперимент). Множество, которое содержит самую полную информацию о всевозможных результатах, называется пространством элементарных событий и обозначается Нераскладные результаты называют элементарными событиями и обозначают
Произвольное подмножество с или какой-либо результат эксперимента называется случайным событием. Случайные события принято обозначать большими буквами латинского алфавита. Если то говорят, что элементарное событие способствует событию
Определение. Событие, которое в условиях этого стохастического эксперимента обязательно произойдет, называется достоверным событием и обозначается
Достоверное событие часто отождествляют с пространством элементарных событий.
Определение. Событие, которое в условиях стохастического эксперимента состояться не может, называется невозможным событием и обозначается
Определение. Объединением (суммой) событий A и B называется событие которое содержит все элементарные события, которые входят либо в событие A, либо в событие B.
Определение. Пересечением (произведением) событий A и B называется событие которое содержит все элементарные события, которые входят и в событие А, и в событие В.
Определение. Разницей событий A и B называется событие АВ, которое содержит все элементарные события, которые входят в событие А и не входят в событие В.
Определение. Событие, которое складывается из всех элементарных событий, которые не входят в событие А, называется противоположным событию А и обозначается
Определение. Если произвольное элементарное событие, которое входит в событие А, принадлежит событию В, то говорят, что событие А содержится в событии В и обозначают
Определение. Если и то говорят, что события A и B равны и записывают это так
Определение. События A и B называются несовместимыми, если они не содержат одинаковых элементарных событий.
Определение. События, которые имеют равные шансы произойти, называют равновозможными.
Свойства операций над событиями
1. Коммутативность:
2. Ассоциативность:
3. Дистрибутивность:
4. Правила где Моргана:
5.
6.
7.
8.
9.
Классическое определение вероятности
Рассматриваем случайное событие с конечным количеством элементарных событий, которые являются равновозможными. Известно, что событие А наблюдается в нем. Количество всех элементарных событий будем обозначать , a количество элементарных событий, которые способствуют событию А — через
Определение. Вероятностью события А называют неотрицательное число которое равняется отношению количества элементарных событий, которые способствуют событию А, к количеству всех элементарных событий, т.е.
Свойства вероятностей
Непосредственно из определения вытекают такие свойства:
1.
Доказательство
.
Свойство доказано.
2.
Доказательство
.
Очевидно, что
количество элементарных событий, которые способствуют событию А, не больше, чем количество всех элементарных событий, т.е.
Поэтому
Свойство доказано.
3.
Доказательство
.
Если событие невозможно, то количество элементарных событий, которые ему способствуют, равно 0. Поэтому
Свойство доказано.
4. Если события A и B несовместимы, то
Доказательство
.
Если события A и B несовместимы, то
Поэтому
Свойство доказано.
5. Если то
Доказательство
.
Если то Следовательно,
Свойство доказано.
6. Если то
Доказательство
.
Если то Очевидно, что
события A и BА несовместимы, поэтому
Отсюда имеем
Свойство доказано.
7. Если события A и B произвольные, то
Доказательство
.
Если события A и B произвольные, то объединение событий A и B можно представить в виде:
Очевидно, что
и не пересекаются и и не пересекаются. С другой стороны,
Поэтому,
Следовательно,
Свойство доказано.
8.
Доказательство
.
Очевидно, пространство элементарных событий может быть изображено в виде объединения двух событий, которые не пересекаются
Поэтому
что эквивалентно
или
Свойство доказано.
Пример
. Дважды подкидывают игральный кубик. Найти вероятности таких событий:
А — «2» выпало ровно дважды;
B — «2»выпало ровно один раз;
С — ни единого раза не выпало «2»;
D — хотя бы один раз выпало «2»;
Е — сумма очков, которая выпала, не более 5;
F — оба раза выпало одинаковое количество очков;
К — оба раза выпало разное количество очков;
L — первый раз выпало большее количество очков, чем второй раз.
Решение
. Пространством элементарных событий является набор упорядоченных пар где — количество очков, которое выпало первый раз, — количество очков, которое выпало второй раз. Согласно правилу произведения в комбинаторике количество элементарных событий равно
А: Событию А способствуют элементарные события, в которых = 2; = 2. Только в одном элементарном событии есть две двойки (2; 2). Поэтому И, соответственно,
В: Событию В способствуют элементарные события, в которых ровно одна двойка: либо на первом, либо на втором месте. Т.е. имеем элементарные события вида или где Поэтому согласно правилам сложения и произведения в комбинаторике
С: Событию С способствуют те элементарные события, в которых нет двоек. Т.е. Их количество по правилу произведения в комбинаторике равно Соответственно,
D: Событие D противоположно событию С. Поэтому
Этот исход можно получить еще двумя способами.
Во-первых, причем события A и B являются несовместимыми.
Поэтому
С другой стороны, если двойка должна выпасть хотя бы один раз, то она может выпасть либо первый раз, либо второй раз. Пусть событие заключается в том, что двойка выпала при первом подкидывании игрального кубика, событие — двойка выпала при втором подкидывании. Заметим, что эти события не являются несовместимыми, a Поэтому
E: Сумма очков не превышает 5. Рассмотрим все элементарные события, которые способствуют этому событию.
Их количество равняется 10, т.е. И соответственно
F: Если оба раза выпало одинаковое количество очков, то элементарные события, которые способствуют этому событию, можно представить так Очевидно, что
К: Событие К противоположно событию F. Поэтому
L: Если выпадет разное количество очков, то возможны такие варианты: в первый раз выпадет больше очков, чем во второй, и наоборот. Заметим, что количество элементарных событий, которые способствуют первом варианту, равно количеству элементарных событий, которые способствуют второму варианту. Поэтому
Пример
. (Схема без возврата). В ящике находится 10 белых и 15 красных шаров. Наудачу вынимают 7 шаров. Найти вероятности таких событий:
А — среди вынутых шаров будет ровно З белых;
В — среди вынутых шаров будет не менее трех белых шаров;
С — среди вынутых шаров будет меньше чем два белых шара;
D — среди вынутых шаров не будет белого шара;
Е — среди вынутых шаров будет хотя бы один белый шар;
F — все шары будут одного цвета;
G — среди вынутых шаров будут шары обоих цветов.
Решение
. Очевидно, что общее количество всех элементарных событий равно количеству всех 7-элементных подмножеств множества, которое содержит 10 + 15 = 25 разных элементов. В этом случае шары считаются элементами, которые различаются между собой.
Поэтому
А: Тут выбирается 3 шара белого цвета. Тогда количество красных шаров будет равняться 4. Согласно правилу произведения в комбинаторике имеем
В: Количество белых шаров может быть либо 3, либо 4, либо 5, либо 6, либо 7. Согласно правилу сложения в комбинаторике
C: Количество белых шаров может быть либо 1, либо 0, поэтому согласно правилу сложения в комбинаторике
D: В этом случае количество белых шаров — 0. Следовательно,
E: Если должен быть хотя бы один белый шар, то количество белых шаров может быть либо 1, либо 2, …, либо 7 и невозможным является только вариант, когда нет белых шаров. Очевидно, что
событие Е противоположно событию D:
F: Если все шары одного цвета, то шары могут быть либо белыми, либо красными. Поэтому
G: Событие G противоположно событию F. Поэтому
с другой стороны
Пример
. В лифт 20-этажного дома на первом этаже зашло 7 пассажиров. Найти вероятности таких событий:
А — все пассажиры выйдут на разных этажах;
B — по крайней мере два пассажира выйдут на одном и том же этаже;
С — все пассажиры выйдут на 4-м этаже;
D — все пассажиры выйдут на одном и том же этаже;
Е — по крайней мере два пассажира выйдут на разных этажах;
F — ровно два пассажира выйдут на 5 этаже;
G — ровно два пассажира выйдут на 5 этаже, а три пассажира — на 10-м;
К — ровно два пассажира выйдут на 5-м, три — на 10-м, два — на 15-м.
Решение
. Каждый пассажир может выйти на одном из 19 этажей. Каждому из пассажиров можно поставить в соответствие номер этажа, на котором он выйдет, поэтому
A: Первый пассажир может выйти на одном из 19 этажей, тогда второй только на одном из 18, третий — на одном из 17, …, седьмой — на одном из 13 этажей. Очевидно, что
В: Если по крайней мере два пассажира должны выйти на одном и том же этаже, то событие В является противоположным событию А:
C: Если все пассажиры должны выйти на 4 этаже, то это значит, что каждый из них имеет только одну возможность и, соответственно,
D: Если все пассажиры должны выйти на одном и том же этаже, то количество элементарных событий, которые способствуют этому событию, равно количеству этажей, на которых могут выйти эти пассажиры, и равно 19, т.е.
Е: Очевидно, что
событие Е противоположно событию D, поэтому
F: Сначала выбираем двух пассажиров с 7, которые выйдут именно на 5 этаже. Останется 5 пассажиров и 18 этажей, на которых они могут выйти. Поэтому
G: Сначала выбираем двух пассажиров, которые выйдут на 5 этаже, потом трех пассажиров, которые выйдут на 10 этаже. Двое пассажиров, которые остались, могут выйти на одном из 17 этажей. Следовательно,
К: В сравнении с предыдущим случаем два пассажира, которые остались, могут выйти только на 15 этаже.
Следовательно,
Пример
. (Схема с возвратом). В ящике находится 10 белых и 15 красных шаров. Вынимаем шар, фиксируем его цвет и кладем назад в ящик. Эту процедуру повторяем 5 раз. Найти вероятности таких событий:
А — белый шар встретится ровно дважды;
В — белый шар встретится не менее двух раз;
С — белый шар не встретится ни единого раза;
D — хотя бы один раз встретится белый шар.
Решение
. Каждый раз мы можем вынуть один из 25 шаров, которые мы считаем различными элементами. Поэтому
А: Дважды мы должны зафиксировать появление белого шара, следовательно, соответственно трижды мы должны зафиксировать появление красного шара. Но порядок появления шаров по цвету является произвольным, поэтому
В: Мы должны белый шар зафиксировать не менее двух раз, т.е. либо 2, либо 3, либо 4, либо 5. Поэтому, используя предыдущие суждения, получим
С: Мы должны фиксировать только красные шары, поэтому
D: Очевидно, что
событие D противоположно событию С, поэтому
т.е.
Статистическое определение вероятности
Не всегда можно учесть все стороны в наблюдении случайного явления для определения вероятности данного события А.
Учитывая то, что случайное явление характеризуется массовостью, к проблеме определения вероятности события А можно подойти с другой стороны. Пусть случайное явление наблюдается n раз. При этом событие А состоялось ровно m раз. Число m будем называть частотой появления события А, а отношение — относительной частотой появления события А.
Тогда вероятностью события А будем называть число
Одним из примеров статистической вероятности является вероятность рождения мальчика. Согласно с логическими предположениями вероятность рождения мальчика должна равняться 1/2, но согласно статистическим данным она оказывается равной 0,514.
Геометрические вероятности
Рассматриваем некоторую конечную область G в n-мерном пространстве (n = 1,2,3) и некоторое ее подмножество D. Стохастический эксперимент заключается в том, что выбираем наудачу произвольную точку области G, случайное событие А — точка окажется в подмножестве D. Считаем, что области G и D являются измеримыми. Мерой тут является длина в одномерном случае, площадь в двумерном случае и объем в трехмерном случае. Существенным является предположение, что все точки области G являются равновозможными, т.е. шансы выбрать подмножества одинаковой меры являются одинаковыми.
Тогда вероятностью события А будет отношение меры области D к мере области G. Меру области D будем обозначать меру области G — a
Пример
. На отрезке АВ длиной l наудачу выбрана точка. Найти вероятность того, что длина меньшей части не меньше l/З.
Решение
. Меньшая часть имеет длину, которая не превышает l/2. Поэтому
Если длина меньшей части не меньше l/З, то она должна находиться в пределах А длина этой части равна
Пусть событие С состоит в том, что длина меньшей части не меньше l/З. Тогда
Следовательно,
Пример
. На отрезке АВ длиной l наудачу выбраны точки С и D . Найти вероятность того, что расстояние
Решение
. Пусть событие F заключается в том, что
Обозначим через длину отрезка АС, а через — длину отрезка AD. Тогда
Графически пространство элементарных событий можно изобразить так:
Тогда
Опишем событие F . Если то если же то Следовательно,
что эквивалентно
Изобразим графически
Следовательно,
и, соответственно, имеем
Пример
. Рассматриваем квадратное уравнение Известно, что Найти вероятность того, что корни этого квадратного уравнения являются действительными и разными.
Решение
. Пусть событие А заключается в том, что корни квадратного уравнения является действительными и разными.
В этом случае произвольными являются два параметра р, q, для которых выполняется условие Следовательно,
пространством элементарных событий является прямоугольник в декартовой системе координат где
Для того, чтобы корни квадратного уравнения были действительными и разными необходимо, чтобы дискриминант был положительным. В этом случае
Изобразим графически область, которая способствует событию А
Очевидно, что
И, наконец,
Аксиоматика теории вероятностей
Рассматриваем некоторое случайное явление и пространство элементарных событий, связанных с этим случайным явлением.
Определение. Совокупность подмножеств с называется σ-алгеброй, если выполняются такие условия:
F1.
F2, Если то
F3. Для последовательности событий такой, что
Определение. Говорят, что на σ-алгебре задано распределение вероятностей, если каждому событию однозначно поставлено в соответствие число которое будем называть вероятностью события А, так, что выполняются условия :
P1.
Р2.
РЗ. Если события являются попарно несовместимыми, то
Совокупность трех объектов называется вероятностным пространством, а условия F1-F3, Р1-Р3 — аксиомами теории вероятностей.
Условные вероятности
Пусть — вероятностное пространство,
Определение. Условной вероятностью события А при условии, что событие B состоялось, называют
Свойства:
1.
2.
3.
4. Если — последовательность попарно несовместимых случайных событий, то
Формула умножения вероятностей
Если то выполняется равенство
Пример
. Дважды подкидывают игральный кубик. Найти вероятность того, что хотя бы один раз выпадет шестерка, если известно, что сумма очков, которое выпало, равно восьми.
Решение
. Пусть событие А заключается в том, что хотя бы один раз выпала шестерка, событие B — сумма очков при двух бросках равняется 8.
Очевидно,
Кроме того,
поэтому
Пример
. Студент пришел на зачет, зная только 24 вопроса из 30. Какая вероятность сдать зачет, если после отказа ответить на вопрос преподаватель задает еще один вопрос.
Решение
. Пусть событие А заключается в том, что студент сдал зачет. Студент может сдать зачет в двух случаях. В первом — он знает ответ на первый вопрос преподавателя — событие А1. Во втором — первый вопрос не знает, но знает ответ на второй — событие (событие А2 заключается в том, что студент знает ответ на второй вопрос).
Пример
. Дано: Найти:
Решение
. По формуле условной вероятности имеем
поэтому
Вероятность противоположного события
Для произвольных событий Е, F справедливо равенство
Поскольку события несовместимы, то несовместимыми являются и события Поэтому
Формула полной вероятности
Рассматриваем некоторое случайное явление и вероятностное пространство, связанное с этим случайным явлением Пусть
Определение. События образуют полную группу событий, если выполняются такие условия:
1.
2.
Теорема (формула полной вероятности).
Если события образуют полную группу событий, А — произвольное событие, тогда:
Доказательство.
Формула Байеса
По условиям предыдущей теоремы
Доказательство. По формуле умножения вероятностей
С последнего равенства выражаем
Пример. В коробке находится 10 шаров, каждый из которых может быть либо белым, либо черным. Все гипотезы о количестве белых и черных шаров в ящике равновероятны. С коробки вынули шар, который оказался белым (событие А). Найти вероятность того, что в коробке было 5 белых и 5 черных шаров.
Решение. Обозначим через H0 гипотезу о том, что в коробке находится 0 белых и 10 черных шаров, H1 — гипотезу о том, что в коробке находится 1 белый и 9 черных шаров, …, H10 — гипотезу о том, что в коробке находится 10 белых и 0 черных шаров.
Поскольку все гипотезы равновозможны, то
По формуле полной вероятности
Далее используем формулу Байеса
Мы должны найти условную вероятность для гипотезы H5
Пример. В магазин поступают одинаковые приборы с трех заводов, причем с первого завода поступает продукции вдвое больше чем со второго и втрое больше чем с третьего. Вероятность брака продукции первого завода равна 0,01, второго — 0,02, третьего — 0,03. Найти вероятность того, что наудачу купленный в магазине прибор будет бракованным.
Прибор, купленный в магазине, оказался бракованным. Найти вероятность того, что он изготовлен на втором заводе.
Решение. Пусть событие А заключается в том, что наудачу купленный в магазине прибор будет бракованным, событие H1 — прибор изготовлен на первом заводе, H2 — прибор изготовлен на втором заводе, H3 — прибор изготовлен на третьем заводе.
Для нахождения вероятности событий обозначим через количество приборов, которые поступили в магазин с первого завода, тогда со второго завода поступило приборов, а с третьего — приборов. Поэтому, очевидно,
С условия задачи имеем
По формуле полной вероятности
По формуле Байеса находим
Независимые события
В вероятностном пространстве рассматриваем события А и B из
Определение. События A и B называются независимыми, если
Свойства независимых событий:
1. Если события A и B является независимыми, то
Доказательство.
По формуле умножения вероятностей
С другой стороны, если события A и B независимые, то
Поэтому имеем
Свойство доказано.
2. Если события A и B являются независимыми, то пары событий и B, и , A и являются также независимыми.
Доказательство.
Очевидно, что
и события и являются несовместимыми, поэтому имеем
а следовательно,
Свойство доказано.
З. Если А1 и B являются независимыми, А2 и B являются независимыми, а А1 и А2 — несовместимыми, то и B являются независимыми.
Доказательство.
Поскольку события А1 и B являются независимыми, то
Аналогично, если события А2 и B являются независимыми, то
и если и B являются независимыми, то
Если события А1 и А2 являются несовместимыми, то
Переходим непосредственно к доказательству. При переходе от первого выражения ко второму будет использоваться свойство дистрибутивности для событий, а во время перехода от второго выражения к третьему — такое свойство: если множества является непересекающимися, то любые подмножества этих множеств также не пересекаются. Далее используется независимость множеств А1 и B, А2 и B. Потом вынесем за скобки . И, наконец, используем несовместимость А1 и А2:
Свойство доказано.
Пример. Из семей, в которых трое детей, наудачу выбрано одну. Событие А — в семье есть мальчик и девочка, событие B — в семье не больше чем одна девочка. Проверить, являются ли события A и B независимыми.
Решение. Произвольному элементарному событию можно сопоставить упорядоченную тройку букв. Каждая буква может приобретать одно из двух значений М или Д. Если старшим в семье является мальчик, то первой будет стоят буква М, если средней в семье является девочка, то второй будет стоят буква Д и т. д. Поэтому пространство элементарных событий можно представить так:
= {МММ, ММД, МДМ, МДД, ДММ, ДМД, ДДМ, ДДД}.
Соответственно событие A –
A = {ММД, МДМ, МДД, ДММ, ДМД, ДДМ},
а событие B –
B = {МММ, ММД, МДМ, ДММ}.
Переходим к определению вероятностей событий А, В,
Следовательно,
Переходим к событию В:
Следовательно,
Описываем событие = {ММД, МДМ, ДММ}.
Очевидно, что
Далее проверяем условие независимости.
Следовательно, а поэтому события A и B являются независимыми, ■
Рассматриваем события
Определение. События будем называть попарно независимыми, если для любой пары индексов выполняется равенство
Определение. События называются независимыми в совокупности, если для любого подмножества индексов множества выполняется равенство
Замечание. Если события независимые в совокупности, то они попарно независимые, если события попарно независимые, то они не обязательно независимые в совокупности.
Пример. Три спортсмена независимо один от другого стреляют по мишени. Вероятность попадания первым спортсменом в мишень равна р1, вторым — р2, третьим — р3. Найти вероятности таких событий:
А — ровно три спортсмена попали в мишень;
B — ровно два спортсмена попали в мишень;
C — ровно один спортсмен попал в мишень;
D — никто из спортсменов не попал в мишень;
Е — хотя бы один из спортсменов попал в мишень.
Решение. Введем события которые заключаются в том, что спортсмен попал в мишень Заметим, что эти события независимые в совокупности. Поэтому имеем
или
Поэтому
Пример попарно независимых случайных событий, которые не является независимыми в совокупности.
Дано множество чисел Наудачу выбирают произвольное число. Событие А заключается в том, что число делится на 2 , событие B — число делится на 3, событие С — число делится на 5.
Решение.
Следовательно, события попарно независимые.
С другой стороны,
с чего следует, что А, В, С не является независимыми в совокупности. ■
Схема Бернулли
Постановка задачи. Проводиться серия из n независимых испытаний. Вероятность появления события А в каждом испытании одинакова и равна р. Необходимо найти вероятность события В, которое заключается в том, что при n испытаниях событие А произойдет ровно k раз.
Вероятность того, что в определенной последовательности событие А произойдет k раз и соответственно n — k раз не произойдет, равно Но количество последовательностей, в которых событие А произойдет k раз и соответственно n — k раз не произойдет, равно Поэтому Искомую вероятность обозначим а . Окончательно формула имеет вид
Если событие С заключается в том, что событие А произойдет:
не менее k раз, то его вероятность
менее k раз, то его вероятность
более k раз, то его вероятность
не более k раз, то его вероятность
Пример. Вероятность положительного результата во время проведения химического опыта равна Найти вероятность того, что в трех опытах по крайней мере дважды будет положительный результат.
Решение. Пусть событие А заключается в том, что в трех опытах по крайней мере дважды будет положительный результат. Тогда
Определение. Наиболее вероятным числом в схеме Бернулли называют число k0, для которого выполняется соотношение
Теорема. В схеме независимых испытаний наиболее вероятное число k0 находится из соотношения
Пример. Вероятность того, что событие А произойдет в каждом из 30 независимых испытаний, равна 0,4. Найти наиболее вероятное число.
Решение. Согласно с условием задачи имеем
Тогда
Пример. Оценить вероятность события А в каждом из 400 испытаний, если наиболее вероятное количество равно 245
Решение. С условия задачи имеем
Тогда
Получили систему неравенств
Следовательно,
Пример. Сколько нужно провести испытаний, чтобы наиболее вероятное число равнялось бы 308, если вероятность появления события А в каждом испытании равно 1/7 .
Решение. С условия задачи известно, что
Используя двойное неравенство для наиболее вероятного числа в схеме Бернулли, получаем соотношение
Решив систему неравенств
получим
т.е.
Асимптотические формулы в схеме Бернулли
Для довольно больших n вычисления значений является громоздким процессом. Поэтому для больших n применяют асимптотические формулы:
Закон Пуассона
Если р довольно малое (на практике ) и n довольно большое (на практике ), то выполняется приближенная формула
где Эту вероятность будем обозначать Значения функции представляются в задачниках по теории вероятностей.
Пример. В аэропорту каждый час в среднем приземляются два самолета. Найти вероятность таких событий:
А — в течение часа в аэропорту приземлится ровно один самолет;
B — в течение двух часов в аэропорту приземлится ровно три самолета;
С — в течение двух часов в аэропорту приземлится не менее двух самолетов;
D — в течение двух часов в аэропорту приземлится хотя бы один самолет.
Решение. Если в среднем каждый час в аэропорту приземляются два самолета, то в течение суток в аэропорту приземлится 2 • 24 = 48 самолетов, т.е. Вероятность того, что этот самолет приземлится в течение определенного часа равна Следовательно, Это значит, что — среднее значение. Для событий B, С, D среднее значения равно 4, поэтому Вычислим значения искомых вероятностей:
Локальная теорема Муавра-Лапласа
Для р близких к 1/2 и выполняется приближенная формула
где
а
Значения функции находят из таблиц, которые представлены в задачниках по теории вероятностей.
Заметим, что т.е. функция является четной.
Пример. Вероятность появления события А в каждом из 400 независимых испытаний равно 0,2. Найти вероятность того, что событие произойдет ровно 75 раз.
Решение. По условию задачи
По таблицам находим
Поэтому искомая вероятность равна
Интегральная теорема Муавра-Лапласа
В условиях локальной теоремы Муавра-Лапласа справедливо приближенное равенство
где
Значения функций находятся из таблиц. Легко заметить, что
в итоге то
Пример. Вероятность того, что студент сдаст сессию на отлично, равна 0,2. Найти вероятность того, что среди 900 студентов количество студентов, которые сдадут сессию на отлично:
А — находится в пределах от 170 к 195 ;
B— не менее 165;
С — не более 200.
Решение. В этом случае
Тогда
Тогда
Отклонение относительной частоты от теоретической вероятности
Пусть в n испытаниях событие А состоялось ровно m(n) раз.
Отношение называется относительной частотой. Найдем Тут ε задано как угодно малое число. Эту вероятность будем называть надежностью или доверительной вероятностью и будем обозначать ее β. Покажем, что эта вероятность равна
Действительно,
Это уравнение можно использовать для определения одного из чисел ε, n, β когда два другие известны.
Пример. Вероятность появления события в каждом из 10000 независимых испытаний равна 0,75 . Найти такое положительное число ε, чтобы с вероятностью 0,98 абсолютная величина отклонения относительной частоты появления события от ее вероятности не превысила ε.
Решение. в этом случае
β = 0,98, n = 10000, р = 0,75.
Необходимо найти ε.
Подставляем заданные значения в только что выведенную формулу.
Далее находим такое значение чтобы
Поэтому
Наведенную формулу можно использовать для оценки теоретической вероятности по относительной частоте
где — относительная частота.
Лекции:
- Классическое определение вероятности
- Независимые события в теории вероятности
- Вероятность события
- Как решать задачи на вероятность
- Теорема сложения вероятностей
- Неравенство Маркова
- Закон больших чисел
- Центральная предельная теорема
- Полином Жегалкина
- Коэффициент Пуассона