2016-04-29 5 views
-1

Я хочу создать веб-сайт, где я покажу оценки фильмов. Я хочу показать средний рейтинг фильма, и я хочу рассчитать это среднее значение из рейтингов из разных источников. Проблема в том, что в некоторых из желаемых источников несколько человек оценили фильм и в других источниках тысячи из них. Например. Фильм «Ревенант». Он имеет средний рейтинг 7,9 в IMDB (10000 пользователей проголосовали), а также имеет 9,9 на сайте «XYZ» (проголосовали 10 пользователей). Как будет выглядеть формула для вычисления этого среднего?Какова формула для расчета среднего рейтинга из рейтингов, полученных из разных источников?

Первоначально я думал просто просто присваивать веса по количеству пользователей, но у меня такое чувство, что я чего-то не хватает. Есть идеи?

ответ

0

средние = sum_of (рейтинг + number_of_people)/total_sum_of_people

+0

Что такое number_of_people и total_sum_of_people? Это то же самое? – Hien

0

Если вы хотите, чтобы каждый вес голосов тот же, то вы должны нагрузить ваш средний путем голосования, как вы первоначально думали. Формулами будут (9.9 * 10 + 7.8 * 10k)/10010. Однако вы можете загружать пользователей с некоторых сайтов больше, чем другие, используя произвольные веса.

Наконец, обратите внимание, что вычислительный алгоритм для среднего лучше делать с использованием аккумулятора в памяти и избегать переполнения (если это имеет значение).

acc = scores[0]; u = users[0]; 
for (i = 1; i < nb_sites; i++) 
    r = u/(u + users[i]) 
    acc = acc * r + users[i] * (1 - r) 
    u += users[i] 
return acc 

 Смежные вопросы

  • Нет связанных вопросов^_^