泊松分酒原理

有一個12品脫(pint)的酒瓶,裏面裝滿葡萄酒,另有8品脫和5品脫的瓶子各一個。問如何從中分出6品脫的酒出來? spa


傳說泊松年輕時成功解決了該問題,勾起了他對數學的興趣而投身數學研究,所以該問題被稱爲泊松分酒問題。另外這個問題又被稱爲分油問題啦,分水問題啦等等。 ci


小學的時候在一本《十萬個問什麼——數學卷》中看到過這個問題,那本書直接給出了一個解答過程,又沒說原理,看得我糊里糊塗。 數學


一 .  解答過程 table

 

爲了方便說明,將容量爲12品脫,8品脫,5品脫瓶子分別稱爲大瓶子,中瓶子,小瓶子。按照下面2種規則中的如何一種能夠解決這個問題: 原理

第一套規則: tab

1. 大瓶子只能倒入中瓶子 di

2. 中瓶子只能倒入小瓶子 ab

3. 小瓶子只能倒入大瓶子 系統

4. 小瓶子只有在已經裝滿的狀況下才能倒入大瓶子

5. 若小瓶子被倒空,則不管中瓶子是否滿,應立刻從中瓶子倒入小瓶子

 

之因此要規定倒酒的順序是爲了防止狀態重複。而根據這5條規則,大瓶子每次倒入中瓶子的酒老是8品脫,小瓶子每次倒入大瓶子的酒老是5品脫。(請結合下面的表來理解這句話,理解這點很重要)

 

有了上面的規定後,倒酒的順序就肯定下來了:

12品脫瓶子 8品脫瓶子 5品脫瓶子  
12 0 0 初始狀態
4 8(倒進) 0  
4 3 5(倒出)  
9 3 0  
9 0 3  
1 8(倒進) 3  
1 6 5(倒出) 搞到6品脫了
6 6 0 完成

 


第二套規則:

1. 大瓶子只能倒入小瓶子

2. 小瓶子只能倒入中瓶子

3. 中瓶子只能倒入大瓶子

4. 中瓶子只有在已經裝滿的狀況下才能倒入大瓶子

5. 若中瓶子被倒空,則不管小瓶子是否滿,應立刻將小瓶子倒入中瓶子

 

其實只是將第一套規則中的「中」和「小」兩個字對換了一下。

根據這個規則肯定的倒酒的順序以下(注意,我將8品脫和5品脫的位置交換了一下):

 

12品脫瓶子 5品脫瓶子 8品脫瓶子  
12 0 0  
7 5(倒進) 0  
7 0 5  
2 5(倒進) 5  
2 2 8(倒出)  
10 2 0  
10 2 2  
5 5(倒進) 2  
5 0 7  
0 5(倒進) 7  
0 4 8(倒出)  
8 4 0  
8 0 4  
3 5(倒進) 4  
3 1 8(倒出)  
11 1 0  
11 0 1  
6 5(倒進) 1 搞到6品脫了
6 0 6 完成
 
好了試試用這兩種規則之一解決以下分酒問題吧:
大瓶子容量10,中瓶子容量7,小瓶子容量3,要分出來5

 

二.  原理


設大,中,小三個瓶子容量分別是C1,C2,C3,須要倒出的容量是R

則實際上要是咱們能將容量爲R的酒倒到中瓶子和小瓶子中就能夠啦(有點廢話)


設大瓶子倒滿中瓶子X次,從小瓶子中倒入大瓶子Y次。

那麼顯然由大瓶子累次倒入中瓶子和小瓶子總共C2*X的酒。而由小瓶子倒入大瓶子一共有C3*Y的酒。

那麼最終,小瓶子和中瓶子剩餘的酒顯然就是 C2*X - C3*Y


所以,泊松分酒問題實質上轉化爲下面的不定方程是否有正整數解的問題:

 

C2*X - C3*Y = R


對於咱們的問題,

C1=12,C2=8,C3=5,R=6


第一種倒酒規則實質上至關於解下面這個不定方程:

8X - 5Y = 6  ( 限定 X > 0 ,Y > 0 )

最小整數解是 X=2,Y= 2

 

表示倒滿8品脫的瓶子2次,5品脫的瓶子倒空2次

那麼8品脫的瓶子和5品脫的瓶子剩酒總量必然是 8 * 2 – 5 * 2 = 6


第二種倒酒規則實質上至關於解下面的不定方程:

5X - 8Y = 6 ( 限定 X > 0 , Y > 0 )

最小整數解是 X = 6 ,Y= 3

表示倒進5品脫瓶子6次,從8品脫瓶子中倒出3次


那麼最終5品脫和8品脫的瓶子剩酒總量必然是 5 * 6 – 8 * 3 = 6

 

好了,如今你明白爲何要規定倒酒的順序了吧。小瓶子和中瓶子是一個系統,而大瓶子又是另一個系統,大瓶子的酒只能倒入中瓶子和小瓶子組成的系統,小瓶子的酒只能倒出到大瓶子的系統。咱們關注的是由中瓶子和小瓶子組成的系統,這個系統每次增長都是8品脫(中瓶子容量),每次減小都是5品脫(小瓶子容量)。


另外,若是存在X和Y,使得下面的方程有解:

C2*X - C3*Y = 1

實質上就是說可以倒出1品脫的酒,那麼任意品脫的酒都能倒出了。

由於:

(C2*X - C3*Y)*N = N

相關文章
相關標籤/搜索