我试图弄清楚如何编写运行的调和平均值,即:在每次迭代时更新的调和平均值。 使用算术平均值很容易做到......但是我在这个方面苦苦挣扎:/任何帮助都非常受欢迎:)
为了他人的利益,如果你能提供伪代码,那就太好了!
答案 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