gpt4 book ai didi

algorithm - 数组值的平均最大子集

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:09:47 25 4
gpt4 key购买 nike

我正在研究一种算法来计算数组的多个均值最大值。该数组包含时间/值对,例如 Garmin 设备在 5 小时的运行中记录的 HR 数据。数据大约每秒一次,持续时间未知,但没有保证频率。一个例子是 10 分钟平均最大值,这是 10 分钟持续时间的最大平均值。假设“均值”只是该讨论的平均值。所需的平均值最大值的持续时间是任意的,1 分钟、5 分钟、60 分钟。而且,我可能需要其中的很多个——至少 30 个,但如果不是一个冗长的请求,最好是按需提供。

现在我有一个直接的算法来计算值:

1) 从数组的开头开始向前“走”,直到子集等于或超过所需持续时间的 1 个元素。如果到达数组末尾则停止。

2) 求出这些子集值的平均值。如果大于当前最大值,则存储为最大值平均值。

3) 将单个值移出数组的左侧。

4) 从 1 开始重复,直到遇到数组末尾。

它基本上计算每个可能的连续平均值并返回最大值。它为每个持续时间执行此操作。它会连续计算一个真实的平均计算,而不是通过删除左边的点并添加右边的点来以某种方式滑动它,就像一个人可以为简单移动平均系列所做的那样。每个平均最大值大约需要 3-10 秒,具体取决于总阵列大小。

我想知道如何优化它。例如,所有平均值最大值的系列将是一条指数曲线,其中 1s 值最高,并且降低直到满足整个平均值。是否可以从一定数量的点对这条曲线和所有值进行插值?或者对上述繁重的计算进行一些其他优化但仍然保持准确性?

最佳答案

“它连续计算真实的平均计算,而不是通过删除左边的点并添加右边的点来滑动它,就像一个人可以为简单移动平均系列做的那样。”

你为什么不直接滑动它(即保持运行总和并除以该总和中的元素数)?

关于algorithm - 数组值的平均最大子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13204499/

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