运行调和算法算法?

时间:2014-10-04 09:28:38

标签: algorithm mean

我试图弄清楚如何编写运行的调和平均值,即:在每次迭代时更新的调和平均值。 使用算术平均值很容易做到......但是我在这个方面苦苦挣扎:/任何帮助都非常受欢迎:)

为了他人的利益,如果你能提供伪代码,那就太好了!

1 个答案:

答案 0 :(得分:2)

调和平均值定义为:

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

因此,如果您想要为平均值添加另一个条目,则必须调整总和。最简单的方法是在迭代中保存临时总和。如果不可能,您可以根据平均值和条目数计算总和:

sum = n / mean

然后调整总和(通过添加和删除条目)

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

重新计算平均值:

mean = n / sum