個人覺得這是一個很有意思的問題,可能很多人看到過類似的,值得去思考一下。實際上,之前我在奇跡號網站上就具體討論過此類問題,有興趣的可以點擊: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.
詳細地論證可以參看我在奇跡號上的文章,這里不再贅述。
這個問題可以用數學表達為求16x-25y=1或者25y-16x=1的問題。其實也就是整系數多元一次不定方程ax-by=c的求整數解問題。
我國很早就有相關的論述,名字就是“大衍求一術”。數學家秦九韶的秦左表可以很方便的解出該問題,民間也有相關的有趣傳聞,其中一個特例名字就是韓信點兵。該問題的解答方案“三人同行七十稀,五樹梅花廿一枝,七子相逢整半月,除百余五便得知”更是膾炙人口。
而西方直到數學天才高斯出現才有相關的討論,并且該討論較之秦九韶的方法尚有不足。不知不覺中又增強了我們的民族自豪感哈。
該類問題的有解的充分必要條件是常數項是系數項最大公約數的倍數。25與16的最大公約數是1,所以該問題有解。
對于一般的ax-by=c的求解方案為:首先求出ma除以b余1的整數解,設置商為n則解的通項為m+kA/a,n+kA/b,k為任意整數,A為a和b的最小公倍數。
補充一個圖片,用于數學愛好者探討研究,該圖片描述的是歐拉關于該題的解答,也就是上文提到的高斯整理的。
根據秦左表或者上文圖片的方案可以得到本題的一個特解為11,7。即使用11次小桶和7次大桶即可。解決方案為,連續使用小桶從存水處取水向大桶裝,大桶裝滿后即倒回存水處,反復裝11次,此時大桶倒掉7次,還剩下1升水。(圖片與題目無關)