2014-10-04 68 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