尋找假幣問題


有n (n>=3)個硬幣,其中一個是假幣,已知假幣的重量比其他的要重一些,你有一架天平。現在要稱出那個是假幣來。

解析:

首先我們先來考慮最簡單的問題1.為了方便敘述,把n個硬幣按1,2...,n順次編號。

若n=3,把一號硬幣放在天平左邊,二號幣放在天平右邊。如果天平:

1.左偏,一號重,是假幣。

2.右偏,二號重,是假幣。

3.保持平衡,那么一二都是正常的硬幣,因此只有可能三號是假幣了。

因此n=3,至多一次就能稱出哪個是假幣,記作f(3)=1.

下面考慮n=9.把所有硬幣分成三組,a{1.2.3} B{4.5.6} C{7.8.9}。A組的硬幣放在左邊,B組放在右邊。如果天平:

1.左偏,則假幣在A里面。

2.右偏,則假幣在B組里面。

3.保持平衡,在C組。

無論在哪個組里面,我們已經把假幣的范圍從9縮小到3,也就是減少到了原來的1/3.之前我們研究過,3個硬幣1次就能稱出來,故而f(9)=2.

不難推廣到一般情況:

定理1.1 f(3n)=n

證明:n=1,2時,已證。設n=k成立,則f(3k)=k;下面考慮n=k+1的情況。

將3k+1個硬幣分成三堆,使得|A|=|B|=|C|=3k。把A放在天平左邊,B放在右邊。

天平:

1、左偏,假幣在A

2、右偏,假幣在B

3、平衡,假幣在C

無論哪種結果,我們都把假幣的范圍縮小到了3k個硬幣里面。而f(3k)=k,故而f(3k+1)=k+1。

 綜上,定理1.1成立。

稍經分析不難得到:

定理1.2 f(n)=(log3n) 向上取整

這個證明和定理1.1完全類似,分n mod 3 = 0, 1, 2適當討論即可。

我們必須注意到(log3n) 向上取整是可行的,應為我們能構造出這樣一個方案。問題是它是不是最優的?

我們采取的方案是每次將硬幣盡量均勻的分成三份,這樣做的根據就是天平只有三種結果:左偏,右偏,平衡。於是就能保證無論假幣在哪一份都能將結果的范圍縮小到原來的1/3.從感性上認識,這應該是最優的了。

為了更加嚴格的證明最優性,我們引進判定樹的概念。

下圖就是n=9時的一種判定樹:

 

 

1、葉子節點代表一種可能的結果。

2、非葉子節點代表一次稱量。

3、非葉子節點至多有三個兒子,分別代表天平的左偏、右偏、平衡三種情況。

 

任意一種稱量方案都能唯一的表示成一棵判定樹;反過來一棵判定樹也唯一對應一種稱量方案。

容易看出判定樹的深度就是稱量次數。這就是我們之所以引進它的原因。

做出判斷之前,誰也無法預知哪個硬幣是假幣,每個都有可能是我們的目標;因此一個有意義的判定樹應該具有至少n個葉子節點。

 

n個葉子節點的樹的深度h ≥ log3上取證,故而可以證明,f(n)=log3 上取整是最優的。

我們的結論是:有nn3次,就能找出那個假幣。)個硬幣,其中一個是假幣,假幣的重量比其他的要重一些。給一架天平,至少稱次,就能找出那個假幣。

 

具體的方案是將硬幣每次都盡量均勻的三分。

讓我們總結一下。

“三分”是整個解法的核心。我們選擇三分,而不是二分或者四分是有原因的,它的本質是由判定樹的特殊結構——三叉樹——所決定的。

同時還必須注意一點,我們在三分的時候有兩個字很講究:“均勻”。實際上h ≥中的‘=’當且僅當硬幣被均勻地分配時才能到達。

這里說的“均勻”是指“在最壞情況下獲得最好的效果”。因為一棵樹的深度是由它根節點兒子中深度最大的兒子決定的,為了使得整個樹深度最小,我們就要務必使得深度最大的兒子深度最小,這就是“均勻”分配的理論根據。

 

練習:第 12 屆全國青少年信息學奧林匹克聯賽初賽題 現有 80枚硬幣,其中有一枚是假幣,其重量稍重,所有真幣的重量都相同,如果使 用不帶砝碼的天平稱重,最少需要稱幾次,就可以找出假幣?你還要指出第1次的稱重方法。請寫出你的結果:

答案:4次 ;第一步,分成三組:27,27,26,將前2組放到天平上。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM