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