几个提示灯都从零时刻亮起、之后按各自周期重复时,再次一起亮的时刻由共同倍数决定。周期的简单相加或取最大值,通常都不能保证同步。
下面给出一组可以从头复算的练习数据。先按约定记录每一步,再比较最后的核对条件;遇到差异时,不急着修改答案,而是先找出从哪一步开始不同。本例描述的是明确限定的游戏规则模型,不代替某款作品自己的说明。
约定与输入
每个提示只在整秒触发瞬间亮一次,不持续占用时间,也没有起始偏移。这里求零之后第一次同步;如果起始时刻不同,需要重新判断,不能直接沿用同一公式。
再次同步必须同时是三个周期的倍数;用最小公倍数取最早正时刻。
三个周期[2, 5, 7],零时刻一起触发 观察时刻[0, 10, 13, 42, 44, 57, 64, 69, 70, 82, 114, 125, 129, 133, 140]
逐步观察
时刻0,除以周期[2, 5, 7]的余数为[0, 0, 0],触发情况['亮', '亮', '亮']。
时刻10,除以周期[2, 5, 7]的余数为[0, 0, 3],触发情况['亮', '亮', '未亮']。
时刻13,除以周期[2, 5, 7]的余数为[1, 3, 6],触发情况['未亮', '未亮', '未亮']。
时刻42,除以周期[2, 5, 7]的余数为[0, 2, 0],触发情况['亮', '未亮', '亮']。
时刻44,除以周期[2, 5, 7]的余数为[0, 4, 2],触发情况['亮', '未亮', '未亮']。
时刻57,除以周期[2, 5, 7]的余数为[1, 2, 1],触发情况['未亮', '未亮', '未亮']。
时刻64,除以周期[2, 5, 7]的余数为[0, 4, 1],触发情况['亮', '未亮', '未亮']。
时刻69,除以周期[2, 5, 7]的余数为[1, 4, 6],触发情况['未亮', '未亮', '未亮']。
时刻70,除以周期[2, 5, 7]的余数为[0, 0, 0],触发情况['亮', '亮', '亮']。
时刻82,除以周期[2, 5, 7]的余数为[0, 2, 5],触发情况['亮', '未亮', '未亮']。
时刻114,除以周期[2, 5, 7]的余数为[0, 4, 2],触发情况['亮', '未亮', '未亮']。
时刻125,除以周期[2, 5, 7]的余数为[1, 0, 6],触发情况['未亮', '亮', '未亮']。
时刻129,除以周期[2, 5, 7]的余数为[1, 4, 3],触发情况['未亮', '未亮', '未亮']。
时刻133,除以周期[2, 5, 7]的余数为[1, 3, 0],触发情况['未亮', '未亮', '亮']。
时刻140,除以周期[2, 5, 7]的余数为[0, 0, 0],触发情况['亮', '亮', '亮']。
第一次再次同步是70秒,此后的同步间隔也为70秒。
复核办法
从一秒开始枚举,找到第一个同时能被所有周期整除的整数。它应与最小公倍数一致,其整数倍也都同步;比它小的正数则不应全部满足。
如果只看一小段录像,可能没等到共同触发就结束了。先算出需要观察的时长,再判断是否真的不同步;同时也要确认各提示确实使用同一个起始时刻。
把边界、顺序与适用范围写进记录,比只记一个最后数字更有用。可以另外构造刚好在边界、完全没有变化和多个条件同时成立的情况,查看规则是否仍自洽;若要改变设定,保留原案例作为对照,再重新计算受影响的部分。
