比较评级算法

时间:2012-06-29 08:51:06

标签: algorithm rating

用例: 假设对象的评级是1到5星。 已经有50票,平均评分为4.1。 当用户进行投票(1-5周)时,需要重新计算评分。

如何实现该逻辑?问题是我们不知道每次投票的价值,只知道当前的评级和总票数。

3 个答案:

答案 0 :(得分:4)

newRating = (oldRating * oldCount + currentVote) / (oldCount + 1)

答案 1 :(得分:0)

嗯,基本算术告诉我们(50 * 4.1 + newvote)/ 51与所有投票的平均值相同。如果你反复这样做,你最终会得到舍入错误,并且经过一定数量的投票之后,甚至不值得在一次投票中平均,但基本公式是合理的。

答案 2 :(得分:0)

假设:

f = (1+2+3)/3 = 6/3 = 2
  = (2+2+2)/3 = 6/3 = 2

我们知道f = g。如果我们知道当前的评级是2,并且总票数是3,2 * 3 = 6作为所有投票的总和。让我们将平均值加4:

f = 6/3
f' = (6+4)/4 = 2.5