假设我有一个系列t_1,t_2,...,t_n,...,并且数字总是在进来。我想计算最后t个数的和/平均值的近似值,但是没有存储那些t数字。存储的唯一内容是先前的总和/平均值。什么是适当的功能?
E.g。
s_1 = t_1
s_2 = f(t_2, s_1)
s_3 = f(t_3, s_2)
可能的功能可能类似于s_2 = t_2 + s_1 *(e ^ -1),但最佳解决方案是什么?
注意:窗口大小是固定的。所以没有确切的解决方案,但是近似,因为窗口外的数字是未知的。
注2:感谢所有讨论。我现在知道答案了。这真是微不足道,我的错不是很好。我稍后会删除这个问题。但无论如何,答案是,我应该假设窗外的数字是平均值。在这个假设下,新的总和是
(old average)*(t-1) + new number
并且新的平均值是
((old average)*(t-1)+(new number))/t
答案 0 :(得分:0)
首先,这实际上可能是Mathematics Stack Exchange
的问题但无论如何,既然你没有提到编程语言,我会选择C#(带数组)。我们打电话给你的系列'mySeries':
double average=0;
for (int i = 0; i < mySeries.Length; i++)
average+=mySeries[i]/(i+1);
MessageBox.Show("Here is your average dawg:" + average.ToString());