Вероятность услышать птицу

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

Условие

В парке проводят наблюдения за птицами. В первой таблице указано, сколько раз за день орнитологи прослушивали каждую точку. Во второй таблице приведены результаты калибровки акустических датчиков для тех же точек.

Для точки с вероятностью обнаружения птицы p процентов за одно прослушивание и числом прослушиваний k вероятность не услышать птицу ни разу равна (1 - p / 100)^k. Все прослушивания, для которых известна калибровка, считаются независимыми.

Требуется найти вероятность того, что хотя бы в одном прослушивании птица будет обнаружена. Если S — множество точек с известной калибровкой, искомая вероятность равна 1 - ∏(1 - p_i / 100)^{k_i} по всем точкам i из S. Строка NA во второй таблице означает пропуск калибровки: такая точка не входит в произведение. Если калибровка отсутствует у всех точек, искомая вероятность считается равной 0. Если одинаковые значения вероятностей встречаются у нескольких точек, порядок этих точек не влияет на ответ.

Формат ввода

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

Следующие n строк образуют первую таблицу. В каждой строке записаны идентификатор точки point_id и целое число k — количество прослушиваний в этой точке.

Следующие n строк образуют вторую таблицу. В каждой строке записаны идентификатор точки point_id и значение p — вероятность обнаружения птицы за одно прослушивание в процентах. Вместо p может быть записано NA.

Идентификаторы точек в каждой таблице не повторяются. Наборы идентификаторов в двух таблицах совпадают, но строки могут идти в разном порядке.

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

Выведите искомую вероятность с четырьмя знаками после десятичной точки.

Ограничения

1 ≤ n ≤ 500.

Длина каждого идентификатора point_id составляет от 1 до 20 символов. Идентификатор состоит из латинских букв, цифр и символа _.

0 ≤ k ≤ 10000.

Если значение во второй таблице не равно NA, то оно является целым числом p, где 0 ≤ p ≤ 100.

Общее число строк данных в двух таблицах не превосходит 1000.

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

Куда дальше