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