gpt4 book ai didi

moving-average - 如何在不保留计数和数据总计的情况下计算移动平均线?

转载 作者:行者123 更新时间:2023-12-03 04:43:48 26 4
gpt4 key购买 nike

我正在尝试找到一种方法来计算移动累积平均值,而不存储迄今为止收到的计数和总数据。

我想出了两种算法,但都需要存储计数:

  • 新平均值 = ((旧计数 * 旧数据) + 下一个数据)/下一个计数
  • 新平均值 = 旧平均值 +(下一个数据 - 旧平均值)​​/下一个计数

这些方法的问题是计数变得越来越大,导致结果平均值的精度下降。

第一种方法使用旧计数和下一个计数,它们显然相差 1。这让我想到也许有一种方法可以删除计数,但不幸的是我还没有找到它。它确实让我更进一步,导致了第二种方法,但仍然存在计数。

这可能吗,还是我只是在寻找不可能的事情?

最佳答案

您可以简单地执行以下操作:

double approxRollingAverage (double avg, double new_sample) {

avg -= avg / N;
avg += new_sample / N;

return avg;
}

其中 N 是要求平均值的样本数。请注意,此近似值相当于指数移动平均线。请参阅:Calculate rolling / moving average in C++

关于moving-average - 如何在不保留计数和数据总计的情况下计算移动平均线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12636613/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com