简单的代数:
AvgVotes = 所有投票总数 / 所有项目总数
AvgRating = 所有项目中赞成票数的总和 * 5 / 所有投票总数
CurVotes = 当前项目的投票数
CurRating = 当前项目中赞成票数的总和 * 5 / 当前项目的投票数
TotalVotes = 所有投票总数 + 当前项目的投票数总和
((AvgVotes * AvgRating) + (CurVotes * CurRating)) * 5 / TotalVotes
所以,将您的数字代入计算A的权重...
AvgVotes = 1000
AvgRating = 0(请注意,在此计算中不要包括您正在评估的项目的数字)
CurVotes = 1000
CurRating = 500 * 5 / 1000 = 2.5
Total Votes = 2000 + 1000 = 3000
((1000 * 0) + (1000 * 2.5)) * 5 / 3000 = 4.166
我忘记了一点,请勿在上述任何计算或总和中包括任何没有投票的项目,否则会使权重失衡。
编辑 - 简化解决方案:
我应该指出,问题可以进行简化处理。我只是为了理解而演示了长手算法。压缩的算法看起来像:
定义:
SET = 与当前评估目标无关的任何内容,其中投票数大于零。
TARGET = 您当前正在尝试评估的元素
25 * (((SET中赞成票数总和)/(SET中项目总数)) + (TARGET中赞成票数总和)) / (TARGET中投票数总和 + SET中投票数总和)
再次将您的数字代入计算'A'以进行澄清和证明:
(25 * ((0/2) + 500)) / (1000 + 2000) = 4.166