规则与目标
桌上有一个4升壶和一个7升壶,壶身没有刻度。水源充足,允许把壶装满、倒空,或把一壶水倒进另一壶,直到前者倒空或后者装满。问怎样得到恰好6升水。
不允许估读液面、另用容器或留下地面水。记录状态时按“4升壶内水量,7升壶内水量”记为一对数字,初始状态为(0,0)。
把操作规则形式化后,所有可达状态都能列成两个水量的有序对。装满、倒空或倒至另一壶满只会产生有限种边界状态;当前策略已经给出从初始状态通往(4,6)的完整路径,直接按状态复现即可,不需要搜索所有可能状态。
第一次留下余量
先把7升壶装满,状态从(0,0)变成(0,7)。把其中水倒入4升壶直到4升壶满,7升壶剩3升,状态为(4,3)。
这一步的关键是7减4余3。倒水在容量限制处停止,不需要知道壶中间的具体刻度;满壶和空壶都是题目允许确认的状态。
执行时无需把剩余水倒回水源或用量杯。七升壶最后的6升保留在壶内,四升壶满装4升;最终水量合计10升,初始取水总量也恰为两次7升装满,共14升,其中4升在倒空操作时被舍弃。
转移到第二个余量
把4升壶倒空,得到(0,3);再把7升壶中剩下的3升倒入4升壶,状态变为(3,0)。重新装满7升壶,成为(3,7)。
现在把7升壶倒入4升壶。4升壶只差1升就满,因此从7升壶倒出1升后停止,最终状态为(4,6)。
若只允许把水倒到壶空或壶满,所有中间量都是整数升,因为壶容量是整数且初始水量为整数。这个整数性可通过状态对逐步归纳:每次只减去容量差或剩余量,不会产生半升等未规定的读数。
核验答案
7升壶内正好剩6升,任务完成。每次倾倒都在一壶满或另一壶空时停止,所有中间状态可直接按容量相减得到,不依赖目测刻度。
操作状态依次为(0,0)、(0,7)、(4,3)、(0,3)、(3,0)、(3,7)、(4,6)。逐步检查没有超出任一容器容量,也没有凭空增减水量。
倒水策略依赖两壶容积互质这一类数论条件,但本题无需抽象证明可量出哪些容量,因为已经展示了明确操作序列。照着状态表走即可得到目标;若题目禁止中途倒空,便不能直接使用此路径。
评分规则
答案为七升壶剩6升;写出完整倾倒次序并解释最后一步因4升壶只差1升而使7升壶剩6升,即为满分。
本题给定的动作规则可能与现实器具精度不同;这里按数学谜题理想条件处理。若不允许把水壶倒空或不允许倾倒至另一壶装满,操作集合会变,结论不能直接套用。
按状态表复做时,水量的变化可以逐项核对:第一轮把7升倒进4升壶后留下3升;把这3升暂存进4升壶,再次装满7升壶。此时4升壶已有3升容量,仅容纳1升便满,所以另一壶恰从7升减少至6升。全过程的水量守恒,取水只发生在装满步骤,倒空则明确舍弃原有水。