Moving Average

统计学的一个方法, 多用在股票上, 不过我不炒股, 我不知道这个东西学名叫什么. 给一个streaming data, 让你找到最近出现的k个元素的平均数. 我看到网上好多人用doubly queue. 感觉没必要, 可以用个fixed size array. 然后需要注意的是窗口展开的时候, 要特殊照顾一下. 当遇到k+1元素的时候, avg(k+1) = (item(k+1) + avg(k)*k)/(k+1). public class MovingAverage { private float avg; private int windowsSize; private float[] samples; private int index = 0; private int k = 0; public MovingAverage(int k){ this.windowsSize = 0; this.k = k; samples = […]