计算不断增长的列表的平均值

时间:2015-09-03 19:52:12

标签: algorithm

如何计算不断增长的清单的平均值?

详细说明:我有粗略的加速度计数据,每秒从10返回到15次。如何在给定时刻找到平均值?

我想到的解决方案是存储返回的总和及其计数,然后每次都将其除以,但这会导致缓冲区溢出和不准确的结果,因为计算机存在十进制数问题。

请提出算法或数学公式。

2 个答案:

答案 0 :(得分:2)

John D. Cook在计算均值和标准偏差方面有very good post,具有更强的数值属性。

基本上(降低所有复杂性)它可以像这个python代码一样简单(想象data作为无限可迭代):

n = 0
mean = 0

for value in data:
    n += 1
    mean += (value - mean) / n

答案 1 :(得分:1)

此处math.stackexchange

的增量平均值

使用递增平均值可以从之前的平均值+新值计算新的平均值。这将更快,而不会生成大量数字。

页面上的第二个表单解决了精确问题