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