Ковариация въездов и выездов парковки

тема: Описательная статистика · уровень: средний

Условие

Торговый центр хранит число въездов и выездов автомобилей с парковки за несколько последовательных часов. В некоторых часах один из счётчиков мог не передать данные.

Для анализа используются только часы, в которых известны оба значения. Пусть таких часов k, а их значения равны (x_i, y_i), где x_i — число въездов, y_i — число выездов. Гарантируется, что k ≥ 1.

Требуется найти генеральную ковариацию числа въездов и выездов:

cov = (1 / k) * Σ((x_i - x̄) * (y_i - ȳ)),

где x̄ = (1 / k) * Σx_i, ȳ = (1 / k) * Σy_i, а сумма берётся по всем часам без пропусков. Строка с пропуском хотя бы в одном из двух значений в расчёт не включается.

Вместе со значением ковариации требуется вывести направление связи: positive, если ковариация больше нуля, negative, если она меньше нуля, и zero, если она равна нулю. При точном равенстве ковариации нулю следует вывести слово zero.

Число ковариации следует округлить до двух знаков после точки по обычному математическому правилу: если следующая цифра равна 5 или больше, модуль последней сохраняемой цифры увеличивается на 1. Если после округления получается ноль, следует вывести 0.00 без знака минус.

Формат ввода

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

В следующих n строках записаны два целых числа entries и exits — число въездов и выездов за соответствующий час. Значение -1 обозначает пропуск данных.

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

Выведите ковариацию с двумя знаками после точки, затем через пробел направление связи: positive, negative или zero.

Ограничения

1 ≤ n ≤ 2000.

Каждое из значений entries и exits равно -1 или является целым числом от 0 до 10000.

Во входе есть хотя бы одна строка, в которой оба значения не равны -1.

Каждая строка с данными содержит ровно два целых числа.

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

Куда дальше