两个容积互质的水杯可倒出任意从1到容积和的水量

即: 两个水杯A、B,容积分别为 x 和 y ,(x,y)=1。则可以通过相互倒水的方法倒出从1到(x+y)的任意自然数体积的水来。(假设睡无限)

例: x=5,y=3,倒出4升水。

  1. A倒满,B空: A剩5,B剩0
  2. A的水倒满B: A剩2,B剩3
  3. B倒空,A水倒至B:  A剩0,B剩2
  4. A倒满: A剩5,B剩2
  5. A的水倒满B:A剩4,B剩3   

 

数学证明:(转自:http://www.guokr.com/question/206848/)

第一种情况:水是无限量供应的。

假设现在有这样两个杯子,容积分别是x和y并且互质,那么对于任何整数a和b,下面的同余方程:(用==表示同余的符号)

z == a (mod x)
z == b (mod y)

都有解,这个结论叫做中国剩余定理,而且它的证明是个构造性证明,也就是说证明本身给出了一个解这个方程的办法。

现在假设x > y,a是需要的水的体积,令b = 0,解这个方程可以得到一个整数z。z除以y余数为0,所以只要用小杯装z/y杯水,然后向大杯中倒,大杯满了就全倒光再接着从小杯中续水,直到把z升水全部用完,大杯中剩下的就是a升水。

也就是说这类问题总是有解的,但是这个解可能不是最优的(用水最少或者折腾次数最少)。

第二种情况:水是有限的,比如大杯中一开始有x升,小杯中一开始有y升。

在这种情况下肯定需要第三个容器,如果这个容器足够大的话应该和第一种情况一样。

如果第三个容器比较小的话,那就需要更多的讨论了(比小杯还小、比小杯大比大杯小等等)。

posted on 2013-03-17 12:22  龙豆  阅读(580)  评论(0编辑  收藏  举报

导航