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

标签 algorithm

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

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

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

请提出算法或数学公式。

最佳答案

John D. Cook 有一个 very good post计算具有更强数值特性的均值和标准差。

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

n = 0
mean = 0

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

关于algorithm - 计算不断增长的列表的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32384323/

相关文章:

algorithm - 使用排列组合遍历 N*N 矩阵的方法数

algorithm - 三角函数如何工作?

java - "Reverse Order"中二叉树逐行层序遍历,时间复杂度O(n)

algorithm - 服装识别算法

c++ - 如何对多数据 vector 进行排序?

使用递归将二叉搜索树转换为双向链表

string - 最长公共(public)回文子序列

arrays - 遍历数组广度搜索

python - 对于从 0 到数据帧长度(负 1)的所有 n,如何获得距离为 n 的每对行之间的最小比率?

java - 查找反转次数