2017-06-24 244 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