計算不斷變化的數據的均值

工做中,要實現計算數據均值的功能:不停讀取數據,計算數據的均值。常規計算均值的方法是,把讀取到的數據累加起來,最後除以讀取的數據量,可是因爲數據比較多,累加的過程可能會存在溢出的狀況搜索

從網上搜索計算均值的其餘方法,在csdn論壇裏有人回覆以下:方法

 

我怎麼發現就像股票數據哈,股票數據的處理方式都是天天交易結束時,把平均算好的,臨時算確定太慢啦。好比一隻股票的價格變化時這樣的:

即時價格       均值
1
2              (1 + 2) / 2 = 1.5
3              1.5 / 3 * 2 + 3 / 3 * 1 = 2
4              2 / 4 * 3 + 4 / 4 * 1 = 2.5
5              2.5 / 5 * 4 + 5 / 5 * 1 = 3
6              3 / 6 * 5 + 6 / 6 * 1 = 3.5
7              3.5 / 7 * 6 + 7 / 7 * 1 = 4

因此第n天的均值價格通式就是:
前一天的均值 / n * (n - 1) + 當天的即時價格 / n數據

相關文章
相關標籤/搜索