公司新闻

游戏机制练习簿:短期数值面板的滑动平均——6项窗口中的十四次采样(案例25)

2026-10-27

帧时长、速度或输入强度的显示值有时会取最近若干次采样的平均。它能降低短期波动,却也会让变化延后反映;平均值不是刚刚发生的那一次采样,也不是未来数值的预测。

以下是一组输入完整的独立案例。先读清规则,再按时间或操作顺序记录中间状态;遇到与预期不同的结果时,检查首次出现差异的位置。案例使用明确限定的教学模型,不假定所有作品都采用相同的处理方式。

规则和原始数据

本例只使用最近固定数量的整数采样;开始时不足一窗就按实际已有数量求平均,不补零。每来一个新值,最多移除最老的一个值,采用精确分数保留结果。

窗口最多6项 [22, 25, 23, 24, 43, 29, 38, 45, 33, 12, 22, 21, 17, 12]

逐步记录

第1次输入22,尚未移出旧值;窗口[22],和为22,按实际1个值平均得到22。

第2次输入25,尚未移出旧值;窗口[22, 25],和为47,按实际2个值平均得到47/2。

第3次输入23,尚未移出旧值;窗口[22, 25, 23],和为70,按实际3个值平均得到70/3。

第4次输入24,尚未移出旧值;窗口[22, 25, 23, 24],和为94,按实际4个值平均得到47/2。

第5次输入43,尚未移出旧值;窗口[22, 25, 23, 24, 43],和为137,按实际5个值平均得到137/5。

第6次输入29,尚未移出旧值;窗口[22, 25, 23, 24, 43, 29],和为166,按实际6个值平均得到83/3。

第7次输入38,移出最老值22;窗口[25, 23, 24, 43, 29, 38],和为182,按实际6个值平均得到91/3。

第8次输入45,移出最老值25;窗口[23, 24, 43, 29, 38, 45],和为202,按实际6个值平均得到101/3。

第9次输入33,移出最老值23;窗口[24, 43, 29, 38, 45, 33],和为212,按实际6个值平均得到106/3。

第10次输入12,移出最老值24;窗口[43, 29, 38, 45, 33, 12],和为200,按实际6个值平均得到100/3。

第11次输入22,移出最老值43;窗口[29, 38, 45, 33, 12, 22],和为179,按实际6个值平均得到179/6。

第12次输入21,移出最老值29;窗口[38, 45, 33, 12, 22, 21],和为171,按实际6个值平均得到57/2。

第13次输入17,移出最老值38;窗口[45, 33, 12, 22, 21, 17],和为150,按实际6个值平均得到25。

第14次输入12,移出最老值45;窗口[33, 12, 22, 21, 17, 12],和为117,按实际6个值平均得到39/2。

最后平均值39/2,最后单次采样12,两者含义不同。

交叉核对与应用

为每个输出重新截取对应的历史切片求和,与滚动窗口的增减计算比较。还要检查最初几次输出的分母,避免把尚不存在的采样也算进平均。

平滑窗口扩大后,旧数据会影响更多次输出;它可以让显示更平稳,也会增加对突变的反应延迟。比较两个窗口时,应使用同一原始采样序列,并分别看过渡过程和稳定阶段。

建议保留原始输入、每一步状态和最终输出,再只改变一个条件做对照。重点检查空输入、相等边界、重复请求以及先后顺序;把规则约定、计算过程和显示表现分别核对,比只比较最后一个数字更容易找到原因。