假设有两个木桶,A桶16升,B桶25升,如何量出1升的水?

个人觉得这是一个很有意思的问题,可能很多人看到过类似的,值得去思考一下。实际上,之前我在奇迹号网站上就具体讨论过此类问题,有兴趣的可以点击:http://www.qijihao.com/a=291

问题的答案是:可以。这里,我仔细地说明一下量出一升水的操作步骤。

为了叙述的简明性,我们先看能不能量出5升的水呢?

过程如下:

用两桶A倒进B桶,A桶剩7升,再倒入B桶。

继续用两桶A倒入B桶,这时A桶还剩14升,还是倒入B桶。接着用一桶A倒入B桶,这时A桶剩5升。

有了上述的预热,是不是可以去想想1升水咋得到。可能不太好想。。。。

是这样的,继续量5升的过程:

4. 将A桶里的5升水倒入B,再用两桶A的水倒入B,此时A桶剩12;

5. 将A的12升水倒入B,再用一桶A倒入B,此时A剩3;

6. 继续将A的3升水倒入B,再将两桶A倒入B,此时A剩10;

7. 将A的10升水倒入B,用一桶A倒入B,A剩1升水。

可以看出,量取水的过程就是一直用A桶的水去填充B,得到能剩下的水量。整个操作所得到的数量依次为:

7>23>14>5>21>12>3>19>10>1>17>8>24>15>6>22>13>14

到14就重复了,过程结束。

同理,我们也可用B桶去填充A桶所剩下水量:

9>18>2>11>20>4>13>22>6>15>24>8>17>1>10>19>3>12>21>5>14>23>7>16

可见,算上B桶的25升,1到25的每一个数字对应的水量都可以量出来。

那么夸张一下,如果给你一个1256升和782升的木桶,问你都能量出几升的水?这时候,再按照原问题的过程去一步步推,那恐怕有些累。我们需要在理论上直接回答,可以将问题一般化:

两个木桶,容量分别为A和B,最小能得到多少量的水?(都能量出多少的水?)

注:A≠B均为正整数

不难看出,量出的水量只能是如下形式:0<aA+bB<max{A,B}, a,b为整数.

那么可以根据最大公约数的性质推断出:

能得到的最小水量为 A和B的最大公约数。

所能得到的水量只能是最小水量即最大公约数的正整数倍。

这也就是说,如果B>A, A和B的最大公约数记为V,且 B=q×V,则可以量出的水量有q个:V, 2V, 3V, …, (q-1)V, B.

详细地论证可以参看我在奇迹号上的文章,这里不再赘述。

(0)
小多多的头像小多多创始人

相关推荐

发表回复

登录后才能评论