2017-06-24 283 views
1

我有一個包含品牌和消費數據的數據流;需要提供實時平均消費數據。
這是一個大容量,低延遲的勾號。
典型最後5個蜱可以是:計算運行平均值

P&G 345.21 
J&J 124.9 
P&G 127.9 
WAL 789 
KMR 78.5 

可能的選項:
填充數據在一個陣列/列表 - 骨料和按需密鑰和骨料返回平均(不可行考慮體積)
填充地圖關於tick的數據。使用kep和tick計數保持單獨的地圖。根據需求計算並從地圖1和2中平均返回。
有沒有更好的數據結構/算法來實現這一目標?

+0

更新字典只需要計算出每個品牌的平均運行? – danche

+0

是的 - 但不知道每個品牌現有的條目數 – IUnknown

+0

因此,您現在沒有任何數量或品牌。但是,當得到一個計數,然後立即計算每個品牌的平均值? – danche

回答

0

對於您的問題,最好是維持一個又一個地圖包含的{brand: (num, mean)}的字典,然後當獲得新的消費x,你可以用

new_mean = mean + (x-mean)/(n+1) 
n = n+1