- 17
- 0
- 约6.19千字
- 约 7页
- 2018-02-23 发布于贵州
- 举报
小孩分油问题python解决
1.问题描述原问题:两个小孩去打油,一个人带了一个一斤的空瓶,另一个带了一个七两一个三两的空瓶。原计划各打一斤油,可是由于所带的钱不够,只好两人合打了一斤油,可是又没有其它工具,试仅用三个瓶子(一斤、七两、三两)精确地分成两个半斤油来。2.算法设计把三个油瓶中的油量作为一个状态,经过一个合法动作后得到下一个状态(合法动作是把A瓶中的油全部倒入B瓶 或者 把A瓶中的油部分倒入B瓶使B瓶充满油),递归搜索所有的可能状态,如果到达最终状态则递归停止。油瓶中油的变化规则:(S表示3两油瓶,T表示7两油瓶)序号规则解释1(S,T) and S7 - (7,T)7两瓶不满时装满2(S,T) and T3 - (S,3)3两瓶不满时装满3(S,T) and S0 - (0,T)7两瓶不空时倒空4(S,T) and T0 - (S,0)3两瓶不空时倒空5(S,T) and S0 and S+T=3 - (0,S+T)7两瓶中的油全倒入3两瓶6(S,T) and T0 and S+T=7 - (S+T,0)3两瓶中的油全倒入7两瓶7(S,T) and S0 and S+T=3 - (S+T-3,3)7两瓶中的油倒满3两瓶8(S,T) and T0 and S+T=7 - (7,S+T-7)3两瓶中的油倒满7两瓶3.代码(穷搜索) 广度优先搜索:(文本输出)import osinitial_oil_s
原创力文档

文档评论(0)