我想建立一个网站,我将在其中显示电影的评分。我想要显示一部电影的平均评分,我想从不同来源的评分中计算出该平均值。问题在于,在一些理想的来源上,一些人评价了一部电影,而在其他来源中有数千部电影。例如。电影" The Revenant"。它在IMDB中的平均评分为7.9(已有10000个用户投票),而且它还有一个9.9英寸的" XYZ"网站(已有10位用户投票)。为了计算平均值,如何看起来像一个公式?
最初我只想根据用户数量分配权重,但我觉得我错过了一些东西。有任何想法吗?
答案 0 :(得分:0)
average = sum_of(rating + number_of_people)/ total_sum_of_people
答案 1 :(得分: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