根据之前的评级和选民人数计算的平均评分

时间:2015-12-18 17:47:41

标签: php math

我需要计算一些事物的平均分数,而当我开始这项工作时一切都很清楚,经过长时间的编程后,我的大脑正在抗议。

选民可以将从1投票到100

我在数据库中有两个值:

  • 投票数 - 为了示例而将其设为10
  • 以前投票的平均评分 - 让它为100,到目前为止每个人都投了100票

第11个人将投票 75

我现在需要计算:

  • 选民数
  • 新的平均评分
$voters_count = 10;
$average_rating = 100;

$new_rating = 75;

$voters_count++;
$new_average_rating = '???';

帮助我克服我的脑力。 如何计算新的平均评分?

3 个答案:

答案 0 :(得分:2)

使用之前的投票数和新投票计算之前平均加权的新加权平均值:

$new_average_rating = ($old_voters_count * $average_rating + $new_rating) /
   $voters_count

答案 1 :(得分:1)

你真的应该存储每一个投票,因为你可能需要超过一个平均值,但是根据你所拥有的信息,你可以通过将投票数乘以现有平均值然后加上新值然后再创建一个平均值。除以新的票数。

新平均值=((旧平均值*旧投票数)+新投票数/新票数。

答案 2 :(得分:0)

这只不过是简单的代数。

平均值是值的总和除以值的数量:

average = sum/number

将数字乘以数字以计算总和:

sum = average*number

添加新值,新的平均值变为:

average(new) = (sum(old)*number + value(new))/(number+1)

您可以根据需要为多个新值重复此操作。