相邻容器之间自动搬运资源时,同一拍的多条连接应使用同一个旧状态来计算。如果算完左边就立刻改右边的输入,结果可能依赖遍历方向。
本篇给出一份完整且可重复的虚构游戏记录。先读清规则,再尝试自行推演输入,最后逐项对照中间状态。不同作品可以选择不同约定,只有在相同前提下才能比较结果;不要只看最终数字相同就认为过程正确。
约定与原始记录
五个容器排列成一行,装整数虚构资源。每条相邻边按旧数量差的四分之一向下取整,从多者向少者转移;所有边的转移同时结算。没有外部加入、损失或容量上限,连续观察十二拍。
初始五容器[25, 18, 20, 8, 2]
逐步计算
第1拍旧数量[25, 18, 20, 8, 2],四条边向右为正的传输量[1, 0, 3, 1],同时结算后[24, 19, 17, 10, 3],总量73。
第2拍旧数量[24, 19, 17, 10, 3],四条边向右为正的传输量[1, 0, 1, 1],同时结算后[23, 20, 16, 10, 4],总量73。
第3拍旧数量[23, 20, 16, 10, 4],四条边向右为正的传输量[0, 1, 1, 1],同时结算后[23, 19, 16, 10, 5],总量73。
第4拍旧数量[23, 19, 16, 10, 5],四条边向右为正的传输量[1, 0, 1, 1],同时结算后[22, 20, 15, 10, 6],总量73。
第5拍旧数量[22, 20, 15, 10, 6],四条边向右为正的传输量[0, 1, 1, 1],同时结算后[22, 19, 15, 10, 7],总量73。
第6拍旧数量[22, 19, 15, 10, 7],四条边向右为正的传输量[0, 1, 1, 0],同时结算后[22, 18, 15, 11, 7],总量73。
第7拍旧数量[22, 18, 15, 11, 7],四条边向右为正的传输量[1, 0, 1, 1],同时结算后[21, 19, 14, 11, 8],总量73。
第8拍旧数量[21, 19, 14, 11, 8],四条边向右为正的传输量[0, 1, 0, 0],同时结算后[21, 18, 15, 11, 8],总量73。
第9拍旧数量[21, 18, 15, 11, 8],四条边向右为正的传输量[0, 0, 1, 0],同时结算后[21, 18, 14, 12, 8],总量73。
第10拍旧数量[21, 18, 14, 12, 8],四条边向右为正的传输量[0, 1, 0, 1],同时结算后[21, 17, 15, 11, 9],总量73。
第11拍旧数量[21, 17, 15, 11, 9],四条边向右为正的传输量[1, 0, 1, 0],同时结算后[20, 18, 14, 12, 9],总量73。
第12拍旧数量[20, 18, 14, 12, 9],四条边向右为正的传输量[0, 1, 0, 0],同时结算后[20, 17, 15, 12, 9],总量73。
十二拍后为[20, 17, 15, 12, 9],总量一直为73,相邻小差值可能因取整保留。
复核方法与适用范围
从每个容器角度分别计算来自左边和右边的净变化,再与按边累计得到的新数量比较。每拍总量必须相同,所有数量非负;数量差小于四的相邻边本拍没有传输。
总量守恒并不意味着一定会变成完全相等的整数。取整会使小差值停止流动,因此应区分不再变化与完全均分。这里每个点至多连接两条边,所选比例保证一次外流不会超过旧库存,换成更多邻居时必须重新检查。
练习时可以只改动一个输入,再观察哪一步首次出现差异。对等于门槛、重复请求、空集合和最后一步分别留一份记录;如果发现异常,应先回到单位、顺序和边界约定,避免用额外补偿掩盖前面已经发生的错误。
