逻辑状态可能只持续很短时间,而观察器每隔几拍才检查一次。如果状态开始和结束都落在相邻检查之间,观察记录就可能完全看不到它。
本篇用一组独立输入把规则展开为可重复核对的记录。先确认单位、编号及边界,再自行尝试推演,然后寻找与下面过程第一次不同的位置。所有结果只在这里写明的规则下成立,不能当作所有游戏的统一实现。
观察时刻按固定间隔和初始相位产生,范围为零到五十拍。每个独立状态区间左端包含、右端排除;只统计落在区间内的采样,存在采样时记第一次发现相对开始的延迟,否则标记未发现。
间隔6、相位4,检查时刻[4, 10, 16, 22, 28, 34, 40, 46] [[34, 44], [29, 39], [13, 16], [43, 51], [0, 4], [2, 5], [4, 7], [37, 46], [9, 11], [21, 23], [15, 25]]
状态[34,44)持续10拍,落入其中的检查时刻[34, 40],首次发现延迟0拍。结束时刻本身不属于有效区间。
状态[29,39)持续10拍,落入其中的检查时刻[34],首次发现延迟5拍。结束时刻本身不属于有效区间。
状态[13,16)持续3拍,落入其中的检查时刻[],没有被发现。结束时刻本身不属于有效区间。
状态[43,51)持续8拍,落入其中的检查时刻[46],首次发现延迟3拍。结束时刻本身不属于有效区间。
状态[0,4)持续4拍,落入其中的检查时刻[],没有被发现。结束时刻本身不属于有效区间。
状态[2,5)持续3拍,落入其中的检查时刻[4],首次发现延迟2拍。结束时刻本身不属于有效区间。
状态[4,7)持续3拍,落入其中的检查时刻[4],首次发现延迟0拍。结束时刻本身不属于有效区间。
状态[37,46)持续9拍,落入其中的检查时刻[40],首次发现延迟3拍。结束时刻本身不属于有效区间。
状态[9,11)持续2拍,落入其中的检查时刻[10],首次发现延迟1拍。结束时刻本身不属于有效区间。
状态[21,23)持续2拍,落入其中的检查时刻[22],首次发现延迟1拍。结束时刻本身不属于有效区间。
状态[15,25)持续10拍,落入其中的检查时刻[16, 22],首次发现延迟1拍。结束时刻本身不属于有效区间。
十一段独立状态中2段没有遇到检查点。
从每个区间起点向后寻找第一个满足采样间隔与相位的整数时刻,再检查它是否仍早于区间终点。与逐个采样筛选的结果比较,特别留意刚好落在结束时刻的检查。
观察器未发现状态,不等于状态从未发生。提高检查频率或直接记录事件可以解决不同问题,本例只说明定期采样的时间盲区。不能从缺失的样本凭空还原真实开始和结束时刻。
练习时先保存原始输入及中间结果,再只改变一个条件观察差异。重点检查空状态、相同数值、恰好到达边界和最后一步。不要为了凑出相同的最终结果而忽略较早出现的偏差,过程和结论都应能由同一套规则解释。