Ожидаемое число погодных предупреждений

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

Условие

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

Вероятность задана целым числом p в тысячных: например, 250 означает вероятность 0.250, а 1000 означает вероятность 1.

Пусть X_i — индикатор отправки предупреждения по записи i: он равен 1, если предупреждение отправлено, и 0 иначе. Требуется найти математическое ожидание общего числа предупреждений X = X_1 + X_2 + ... + X_n. По линейности математического ожидания

E[X] = E[X_1] + E[X_2] + ... + E[X_n] = (p_1 + p_2 + ... + p_n) / 1000.

Температура может быть пропущена и обозначена строкой NA; она не влияет на расчёт, так как вероятность предупреждения для такой записи всё равно указана. Вероятности не пропущены. Независимость событий для применения приведённой формулы не требуется.

Формат ввода

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

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

timestamp station temperature probability

где timestamp — момент измерения, station — код станции, temperature — температура в градусах Цельсия или NA, probability — вероятность предупреждения в тысячных.

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

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

Ответ необходимо вывести ровно с тремя знаками после десятичной точки. Округление не применяется: сумма вероятностей в тысячных всегда даёт число, точно представимое с тремя знаками после точки.

Ограничения

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

Куда дальше