短时间内提示次数怎样按滑动窗口计数:十八次请求的窗口成员记录·实例07
连续操作可能触发很多界面提示。按最近一段时间限制显示次数时,窗口会随当前时刻移动,而不是每到整十秒就全部清空;被压下的提示是否延长等待也要说清楚。
下面把一个游戏界面或模拟规则拆成可复查的记录。每组输入独立给出,先确认单位、先后次序和边界,再核对结果。它不依赖具体游戏的隐藏参数,读者可以直接挑选几步手工复算。
输入与规则
记录十八次提示请求的整数时刻,可有同刻请求并按记录顺序处理。当前窗口是当前时刻减窗口长度之后,到当前时刻为止,左端不包含;只保留已经显示的时刻。未满上限才显示,被忽略请求不占名额。
窗口长12,最多5次,十八次请求[0, 1, 2, 5, 5, 9, 15, 18, 20, 20, 22, 22, 24, 28, 32, 33, 33, 40]
逐步记录
请求1在0拍到达,有效窗口(-12,0],此前已显示且仍占名额的时刻[],本次显示,处理后队列[0]。到左端边界的旧记录已经过期。
请求2在1拍到达,有效窗口(-11,1],此前已显示且仍占名额的时刻[0],本次显示,处理后队列[0, 1]。到左端边界的旧记录已经过期。
请求3在2拍到达,有效窗口(-10,2],此前已显示且仍占名额的时刻[0, 1],本次显示,处理后队列[0, 1, 2]。到左端边界的旧记录已经过期。
请求4在5拍到达,有效窗口(-7,5],此前已显示且仍占名额的时刻[0, 1, 2],本次显示,处理后队列[0, 1, 2, 5]。到左端边界的旧记录已经过期。
请求5在5拍到达,有效窗口(-7,5],此前已显示且仍占名额的时刻[0, 1, 2, 5],本次显示,处理后队列[0, 1, 2, 5, 5]。到左端边界的旧记录已经过期。
请求6在9拍到达,有效窗口(-3,9],此前已显示且仍占名额的时刻[0, 1, 2, 5, 5],本次忽略,处理后队列[0, 1, 2, 5, 5]。到左端边界的旧记录已经过期。
请求7在15拍到达,有效窗口(3,15],此前已显示且仍占名额的时刻[5, 5],本次显示,处理后队列[5, 5, 15]。到左端边界的旧记录已经过期。
请求8在18拍到达,有效窗口(6,18],此前已显示且仍占名额的时刻[15],本次显示,处理后队列[15, 18]。到左端边界的旧记录已经过期。
请求9在20拍到达,有效窗口(8,20],此前已显示且仍占名额的时刻[15, 18],本次显示,处理后队列[15, 18, 20]。到左端边界的旧记录已经过期。
请求10在20拍到达,有效窗口(8,20],此前已显示且仍占名额的时刻[15, 18, 20],本次显示,处理后队列[15, 18, 20, 20]。到左端边界的旧记录已经过期。
请求11在22拍到达,有效窗口(10,22],此前已显示且仍占名额的时刻[15, 18, 20, 20],本次显示,处理后队列[15, 18, 20, 20, 22]。到左端边界的旧记录已经过期。
请求12在22拍到达,有效窗口(10,22],此前已显示且仍占名额的时刻[15, 18, 20, 20, 22],本次忽略,处理后队列[15, 18, 20, 20, 22]。到左端边界的旧记录已经过期。
请求13在24拍到达,有效窗口(12,24],此前已显示且仍占名额的时刻[15, 18, 20, 20, 22],本次忽略,处理后队列[15, 18, 20, 20, 22]。到左端边界的旧记录已经过期。
请求14在28拍到达,有效窗口(16,28],此前已显示且仍占名额的时刻[18, 20, 20, 22],本次显示,处理后队列[18, 20, 20, 22, 28]。到左端边界的旧记录已经过期。
请求15在32拍到达,有效窗口(20,32],此前已显示且仍占名额的时刻[22, 28],本次显示,处理后队列[22, 28, 32]。到左端边界的旧记录已经过期。
请求16在33拍到达,有效窗口(21,33],此前已显示且仍占名额的时刻[22, 28, 32],本次显示,处理后队列[22, 28, 32, 33]。到左端边界的旧记录已经过期。
请求17在33拍到达,有效窗口(21,33],此前已显示且仍占名额的时刻[22, 28, 32, 33],本次显示,处理后队列[22, 28, 32, 33, 33]。到左端边界的旧记录已经过期。
请求18在40拍到达,有效窗口(28,40],此前已显示且仍占名额的时刻[32, 33, 33],本次显示,处理后队列[32, 33, 33, 40]。到左端边界的旧记录已经过期。
共显示15次,其余不占后续窗口名额,也不会自动补显示。
复核方法和适用范围
对每次请求,从此前所有真正显示的记录中重新筛选窗口内成员,再数数量。这个独立的历史筛选应与逐次弹出过期项的队列结果一致,特别检查恰好过期以及同一时刻多个请求。
这里控制的是提示显示次数,不拦截玩家操作,也不是网站访问防护。上限和窗口是本例的产品约定;被忽略项没有排队补显示,因此不能把它们解释为稍后一定出现。
练习时可以只改动一项输入,预测从哪一步开始出现变化,再逐步比较。空状态、数值零和无法判断要分别记录;不要为了让最后结果一致而忽略中途的偏差。边界与同分约定同样属于规则,复核时应一并保留。
