Вероятность подозрительного визита по алерту

тема: Вероятность и матожидание · уровень: средний

Условие

В журнале посещений школьного сайта система защиты помечает визиты алертом. После ручной проверки часть визитов получает метку: 1 — подозрительный визит, 0 — обычный визит, - — проверка ещё не выполнена.

Обозначим через B событие «визит подозрительный», а через A событие «система выдала алерт». Требуется найти вероятность \(P(B\mid A)\) только по визитам с выполненной ручной проверкой. По формуле Байеса

\[ P(B\mid A)=\frac{P(A\mid B)\cdot P(B)}{P(A)}=\frac{P(B\cap A)}{P(A)}. \]

В журнале вероятности считаются как доли среди строк с меткой проверки 0 или 1. Поэтому искомая величина равна числу проверенных подозрительных визитов с алертом, делённому на число всех проверенных визитов с алертом. Строки с меткой - полностью игнорируются: они не участвуют ни в числителе, ни в знаменателе.

Гарантируется, что среди проверенных визитов есть хотя бы один визит с алертом, поэтому деления на ноль не будет. Одинаковые идентификаторы визитов возможны: каждая строка журнала учитывается отдельно. Выведите ответ ровно с четырьмя знаками после точки.

Формат ввода

В первой строке дано целое число n — количество строк журнала.

В следующих n строках записаны три значения через пробел:

visit_id review alert

где visit_id — идентификатор визита, review — результат ручной проверки (0, 1 или -), alert — срабатывание системы (0 или 1).

Формат вывода

Выведите одно число — \(P(B\mid A)\), округлённое до четырёх знаков после точки.

Ограничения

Решить задачу с автопроверкой на Python →

Куда дальше