2014-10-04 65 views
1

我想弄清楚如何编写一个运行调和平均值,即:每次迭代更新的调和平均值。 这很容易做到算术的意思......但我在这方面挣扎很多:/任何帮助都不止于欢迎:)运行调和平均算法?

为了别人的利益,如果你可以提供伪代码,它会太好了!

回答

2

调和平均数被定义为:

mean = n/(sum for all xi (1/xi)) 

所以,如果你想添加一个条目平均,你必须适应的总和。最简单的方法是跨迭代保存临时总和。 (通过添加和删除的条目)

sum += 1/newEntry 
sum -= 1/removedEntry 
n += 0  in this case because one item is added and one removed 

sum = n/mean 

然后适应的总和,并重新计算平均值:如果这是不可能的,你可以计算从平均值之和的条目数:

mean = n/sum 
+1

同样的程序适用于几何平均值和均方根。 – 2014-10-04 10:08:36