一个小小小小的问题 假设有一个池塘,里面有无穷多的水,现有2个空水壶,容积分别为5升和6升,如何只用这2一个小小小小的问题 假设有一个池塘,里面有无穷多的水,现有2个空水壶,容积
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 13:22:24
一个小小小小的问题 假设有一个池塘,里面有无穷多的水,现有2个空水壶,容积分别为5升和6升,如何只用这2一个小小小小的问题 假设有一个池塘,里面有无穷多的水,现有2个空水壶,容积
一个小小小小的问题 假设有一个池塘,里面有无穷多的水,现有2个空水壶,容积分别为5升和6升,如何只用这2
一个小小小小的问题
假设有一个池塘,里面有无穷多的水,现有2个空水壶,容积分别为5升和6升,如何只用这2个水壶从池塘里取得3升的水。(注:每次灌水壶要灌满;每次倒水水要倒光(倒进池塘里去的时候);把水从一个壶里倒进另一个壶里,也要都倒光,除非在倒的过程中另一个壶已经满了;倒水的时候没有损失、蒸发溢出什么的)
欢迎解答!
一个小小小小的问题 假设有一个池塘,里面有无穷多的水,现有2个空水壶,容积分别为5升和6升,如何只用这2一个小小小小的问题 假设有一个池塘,里面有无穷多的水,现有2个空水壶,容积
1.先用5升的水壶装满水,倒入六升的水壶中.六升的水壶中还空出 一升水体积.
2.再用把盛五升水水壶装满水,倒入容积六升的水壶中,壶中还剩4升水.
3.把容积六升水中的水倒掉,再把容积五升的水壶倒满水,把这些水倒入容积六升的壶中,容积五升的水壶中这时刚好剩下三升水.
问题没写全啊,大概是大杯小杯来回倒取多少水的问题吧。
A容量 5 B容量 6
B满 倒满A 清空A =》 A 0 B 1
B倒入A =》 A 1 B 0
取池水装满B 倒满A =》 A 5 B 2
清空A =》 A 0 B 2
B倒入A 取池水装满B 倒满A =》 A 5 B 3
q形式化倒水问题:无穷多水,容量a,b(a<=b)的水壶倒出c(c<=b)升水。q结论:c%gcd(a,b) == 0 时有解,可用扩展的Euclid定理加以证明:即存在整数x,y,使得ax+by=gcd(a,b).
q通用解法:(容量A,B的水壶倒C升水)nint t = 0;nwhile(t != c){qDo(fill A),Do(pour A B);qt = t+A;qif(t >...
全部展开
q形式化倒水问题:无穷多水,容量a,b(a<=b)的水壶倒出c(c<=b)升水。q结论:c%gcd(a,b) == 0 时有解,可用扩展的Euclid定理加以证明:即存在整数x,y,使得ax+by=gcd(a,b).
q通用解法:(容量A,B的水壶倒C升水)nint t = 0;nwhile(t != c){qDo(fill A),Do(pour A B);qt = t+A;qif(t >= B){§t = t – B;§Do(empty B), Do(pour A B);q}n}
n本题解答(5,6->3)nOper a b t (A=5,B=6) qFill A, Pour A B 0 5 5qFill A, Pour A B 4 6 10qEmpty B, Pour A B 0 4 4qFill A, Pour A B 3 6 9qEmpty B, Pour A B 0 3 3 (success)
收起