概述 - 有没有办法根据现有平均值计算平均值并给出平均值的新参数?

the*_*p3r 14 math equation average

让我们说,我们正在计算测试分数的平均值:

开始测试分数: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
Run Code Online (Sandbox Code Playgroud)

并且都没有达到"应该"的确切平均值.考虑到你不知道初始值,在数学上是否可以这样做?

duf*_*ymo 26

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

newAve = ((oldAve*oldNumPoints) + x)/(oldNumPoints+1)
Run Code Online (Sandbox Code Playgroud)


sta*_*lue 6

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

它们可以轻松更新,并且可以在不损失精度的情况下计算平均值。


Vla*_*mir 5

比如,你有2个分数:

1st: n scores with average = a1 
2nd: m scores with average = a2
Run Code Online (Sandbox Code Playgroud)

那么总分的平均值等于:

a1*(1.0*n/(m+n))+a2*(1.0*m/(m+n))
Run Code Online (Sandbox Code Playgroud)

如果您只想将1分(a2)添加到现有的设定公式中

a1*(n/(n+1))+ a2/(n+1)
Run Code Online (Sandbox Code Playgroud)