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