一、算法设计
1、算法思路
首先根据题目,存在三个油瓶A、B、C,最大容量分别为10、7、3,三个油瓶的初始状态为(10, 0, 0),目标状态为 (5, 5, 0)。
本文中采用深度优先搜索算法对问题进行求解,通过设置状态变化规则,对每一个节点下可能存在的所有满足约束条件的状态变化操作进行遍历,将之前没有出现过的状态节点入队,如果和目标状态相等就把该路径加入路径列表,否则从新的状态节点进入递归。
2、变化规则
规则号 |
规则 |
解释 |
1 |
B, C and B<7 → (7, C) |
B瓶不满的时候装满B瓶 |
2 |
B, C and C<3 → (B, 3) |