`
miaojihao
  • 浏览: 22099 次
  • 性别: Icon_minigender_1
  • 来自: 南阳
社区版块
存档分类
最新评论

分油算法

阅读更多

分油算法:一个桶中有12斤油最多也只能装12斤,要求倒出6斤,可现在另外只有两个桶,分别可装9斤与5斤,请问应如何来倒?
程序如何实现

倒退法:12斤油桶设为a,5斤油桶设为b,9斤油桶设为c

假设油已经倒出完毕,呢么a,b,c三个桶里面的油,肯定有一个桶是6斤油,而肯定不是b,因为b最多能装5斤油,也就是说6斤的油肯定不是在a中就是在b中,又因为总共有12升,所以可以肯定的是ac各6斤油,而b则为0,

下面是具体的倒油过程:

初始阶段:a=12,b=0,c=0

1.从a桶向b桶中倒油,直到b桶倒满为止,这时a桶剩下a=12-5=7,而b桶则为b=5,

2.从b桶向c桶倒油,直到b桶的油倒完为止,此时c=5,而b=0,

3.从a桶向b桶中继续倒油,直到b桶满了,此时a=12-5-5=2,而b=5

4.从b桶向c桶中倒油,直到c桶满了为止,这时c=5+4=9,而b=5-4=1

5.将c桶中的油全部倒入a中,此时a=2+9=11,而b=1,

6,将b中的油全部倒入c中,此时b=0,c=1,

7.将a中的油倒入b中,直到b满了为止,此时b=5,a=11-5=6,

8.将b中的油全部倒入c中,此时c=1+5=6,b=0

倒油完毕!!!!!

//伪代码

function daoyou (){

$a=12,$b=0,$c=0;

$a=12-5;

$b=5;

$c=$b;$b=0;

$a=12-5-5;$b=5;

$c=9;$b=$b-(9-$b);

$a=$a+$c;

$c=$b;$b=0;

$b=$a-($a-5);$a=$a-$b;

$c=$c+$b;

echo "到油完毕:";

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics