有限位数的计数器到顶会回到零,所以新编号不一定比旧编号数值大。比较时需要明确允许判断的前后窗口,跨度太大就不能仅凭编号恢复真实顺序。
以下是一组可按记录复查的虚构游戏例子。它先固定输入、单位和执行顺序,再展示每一步结果。读者可以用纸笔挑出几步核对,不需要依赖具体游戏的后台数据。
编号模二百五十六循环。将候选减当前编号后取非负余数:零表示重复,一到一百二十七表示较新,一百二十八表示模糊,剩余表示较旧。只有较新记录更新当前编号,本例不推断模糊项的真实时间。
初始基准250,模数256 候选序列[32, 32, 69, 197, 68, 69, 71, 37, 53, 199, 107, 123, 251, 123, 136, 8, 136, 8]
记录1编号32,比较前当前编号250,模差38,判为较新;处理后当前编号32。只有窗口内较新记录推进基准,其他情况不推进。
记录2编号32,比较前当前编号32,模差0,判为重复;处理后当前编号32。只有窗口内较新记录推进基准,其他情况不推进。
记录3编号69,比较前当前编号32,模差37,判为较新;处理后当前编号69。只有窗口内较新记录推进基准,其他情况不推进。
记录4编号197,比较前当前编号69,模差128,判为模糊;处理后当前编号69。只有窗口内较新记录推进基准,其他情况不推进。
记录5编号68,比较前当前编号69,模差255,判为较旧;处理后当前编号69。只有窗口内较新记录推进基准,其他情况不推进。
记录6编号69,比较前当前编号69,模差0,判为重复;处理后当前编号69。只有窗口内较新记录推进基准,其他情况不推进。
记录7编号71,比较前当前编号69,模差2,判为较新;处理后当前编号71。只有窗口内较新记录推进基准,其他情况不推进。
记录8编号37,比较前当前编号71,模差222,判为较旧;处理后当前编号71。只有窗口内较新记录推进基准,其他情况不推进。
记录9编号53,比较前当前编号71,模差238,判为较旧;处理后当前编号71。只有窗口内较新记录推进基准,其他情况不推进。
记录10编号199,比较前当前编号71,模差128,判为模糊;处理后当前编号71。只有窗口内较新记录推进基准,其他情况不推进。
记录11编号107,比较前当前编号71,模差36,判为较新;处理后当前编号107。只有窗口内较新记录推进基准,其他情况不推进。
记录12编号123,比较前当前编号107,模差16,判为较新;处理后当前编号123。只有窗口内较新记录推进基准,其他情况不推进。
记录13编号251,比较前当前编号123,模差128,判为模糊;处理后当前编号123。只有窗口内较新记录推进基准,其他情况不推进。
记录14编号123,比较前当前编号123,模差0,判为重复;处理后当前编号123。只有窗口内较新记录推进基准,其他情况不推进。
记录15编号136,比较前当前编号123,模差13,判为较新;处理后当前编号136。只有窗口内较新记录推进基准,其他情况不推进。
记录16编号8,比较前当前编号136,模差128,判为模糊;处理后当前编号136。只有窗口内较新记录推进基准,其他情况不推进。
记录17编号136,比较前当前编号136,模差0,判为重复;处理后当前编号136。只有窗口内较新记录推进基准,其他情况不推进。
记录18编号8,比较前当前编号136,模差128,判为模糊;处理后当前编号136。只有窗口内较新记录推进基准,其他情况不推进。
最终基准136,模糊记录保留待另取信息,不被当作明确新旧。
把候选编号加减若干个完整周期,寻找相对当前编号绝对差最小的表示。差为正表示窗口内较新,为负表示较旧;正负一百二十八同样近时必须保留模糊状态,不能任意选一边。
规则依赖相邻可比较记录跨度小于半个周期的前提,不能处理任意长离线后的一次编号比较。重复只说明编号相同,不自动证明负载内容相同;这里专门讨论序号顺序,不承担完整同步协议。
练习时只改变一个条件,先判断哪些中间步骤应当受影响,再重新计算。要把空状态、数值零和未能确定的结果分开。边界约定不同可能产生不同答案,复查的目标是确认输入、过程与规则一致,而不是只追求最后一个数字看起来相同。