Ожидаемая оценка фильма

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

Условие

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

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

Случайная величина \(X\) равна оценке редакции фильма, который будет выбран зрителем. Требуется найти математическое ожидание \(E[X]\):

\[ E[X] = \sum_{i=1}^{n} x_i \cdot p_i, \]

где \(x_i\) — оценка фильма, а \(p_i\) — вероятность его выбора. Во входных данных вероятность задана числом probability_thousandths, поэтому \(p_i = \text{probability_thousandths}_i / 1000\).

Если вероятности нескольких фильмов совпадают, каждая соответствующая строка всё равно отдельно участвует в сумме. Пропусков нет: каждый идентификатор из первой таблицы ровно один раз встречается во второй таблице.

Формат ввода

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

В следующих n строках дана первая таблица в формате:

movie_id title editorial_rating

Здесь movie_id — идентификатор фильма, title — название без пробелов, editorial_rating — целая оценка редакции.

В следующих n строках дана вторая таблица в формате:

movie_id probability_thousandths

Здесь probability_thousandths — вероятность выбора фильма в тысячных долях.

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

Выведите математическое ожидание \(E[X]\) с ровно тремя знаками после десятичной точки.

Ограничения

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

Куда дальше