20

可以说,我们正在计算考试成绩的平均值:

起始测试分数:75、80、92、64、83、99、79

平均值 = 572 / 7 = 81.714...

现在给出 81.714,如果您不知道初始测试分数,有没有办法添加一组新的测试分数来“扩展”这个平均值?

新考试成绩:66、89、71

平均值 = 226 / 3 = 75.333...

正常平均值为:798 / 10 = 79.8

我试过了:

Avg = (OldAvg + sumOfNewScores) / (numOfNewScores + 1)

(81.714 + 226) / (3 + 1) = 76.9285

Avg = (OldAvg + NewAvg) / 2

(81.714 + 79.8) / 2 = 80.77

并且两者都没有提出它“应该”的确切平均值。考虑到您不知道初始值,在数学上是否可以做到这一点?

4

3 回答 3

39

您必须知道原始集合中的测试分数数和旧平均值:

newAve = ((oldAve*oldNumPoints) + x)/(oldNumPoints+1)
于 2010-10-22T16:17:24.083 回答
6

比如说,你有 2 个分数块:

1st: n scores with average = a1 
2nd: m scores with average = a2

那么总分的平均值等于:

a1*(1.0*n/(m+n))+a2*(1.0*m/(m+n))

如果您只想将 1 分 (a2) 添加到现有的集合公式变为

a1*(n/(n+1))+ a2/(n+1)
于 2010-10-22T16:18:26.523 回答
5

标准方法是存储计数和值的总和。

它们可以很容易地更新,并且可以从中计算平均值而不会损失精度。

于 2010-10-22T17:12:35.920 回答