有什么算法能使一列数组中较远数据逐渐变小

2021-07-22 21:08:36 +08:00
 songdg
譬如一个时序的数组,最近的 100 个数据不变,大于 100 的根据与当前的距离逐渐变小。
1765 次点击
所在节点    程序员
9 条回复
Jooooooooo
2021-07-22 21:10:50 +08:00
你可以搜下 redis 是怎么设计过期 key 的.
menc
2021-07-22 22:30:54 +08:00
设计一个分段函数即可,
f(x) = x if x<100;
f(x) = x * (1/2) ^(x-100)/T if x> 100

下式是半衰期公式,T 是超参数,当 X-100 = T 时,x 衰减为原值的一半
imn1
2021-07-22 23:02:08 +08:00
不需要算法,而是想法,看你怎么定权重,时序只是单一整数序列,规则比算法重要
akira
2021-07-23 01:05:03 +08:00
这应该是个数学问题吧。。
Weixiao0725
2021-07-23 01:07:04 +08:00
你可以看下 moving average 算法及其各种变形
siweipancc
2021-07-23 09:22:50 +08:00
离散数学跟定时器维护?
songdg
2021-07-24 09:53:02 +08:00
@imn1 确实是这样。
songdg
2021-07-24 09:53:52 +08:00
@Weixiao0725 谢谢帮助。
songdg
2021-07-24 09:56:15 +08:00
@menc 非常感谢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/791152

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX