Vic*_*cky 4 language-agnostic algorithm average
我的自行车电脑可以显示各种数字,如行驶距离,经过的时间,最大速度,平均速度,当前速度等.我通常将其设置为显示当前和平均速度.
您可以随时重置距离和时间(两者一起); 自上次复位后计算最大和平均速度.距离是从车轮传感器获取的(您必须首先校准它以告诉它车轮的周长),时间来自它自己的实时时钟.
现在,经常在我骑车的同时,我将远远超过显示的平均速度,但显示的平均速度将会下降.作为一个具体的例子,今天晚上我骑自行车回家,目前的速度稳定在19.5英里每小时; 我的平均值显示为12.6英里/小时,当我看着它时,它向下点击到12.5英里.
我正在努力解决的是它使用什么样的奇异平均算法可以产生这种效果.除了总距离/总时间之外,我无法相信它正在做任何类似的花哨的东西.我想它必须是某种舍入/边界条件,但我无法弄清楚是什么.有什么建议?
[我在办公室工作时问过这个问题,但没有人有任何想法,我应该不再担心这些细节了!嘿,当我骑自行车时,我必须考虑一些事情,每个方向都是9英里...]
Lor*_*tel 15
我猜它有一定数量的数据点的历史,并显示它们的平均值.随着时间的推移,旧点被推迟.
如果你在这一点上走得更快,那么回到历史的最后一点就会降低你的平均值.
这不是一个平均值,它应该是整个旅行的平均值,对吧?至少这是我一直认为我正在做的事情.
我也注意到了这个效果.我的理论是,它用于平均值的时钟和距离计数器都具有相当低的分辨率,因此有时候时钟计数器会在距离计数器保持稳定的同时上升,并且你会得到下降.例如:
dist time spd
8.5 40.1 12.72
8.5 40.2 12.69
Run Code Online (Sandbox Code Playgroud)
如果他们使用整数处理器和固定点,截断将使得下降看起来更大