題目:有12個外觀完全一樣的球,其中有一個球和其他球的重量不一致,如何使用一個天平稱3次得出不一致的球是哪個?
筆者看到這題就立馬想到將球分成3組,將其中的兩組進行比較,然后如果不相等,就將重的那組進行兩兩划分,在比較,在將兩個重的進行比較在進行比較。如果相等則將余下的那組進行比較。相信這里有不少園友發現不是比重,也有可能輕。
題外話:這里寫篇博文,就是要告誡作者自己,細心點,做一個程序員這么粗心大意可不是什么好事情。盡量每次想問題注意周全。是要自己時刻提醒要細心。
當然,前一刻還在嘲笑自己不細心,但是細心做下來,發現此題也不容易做。
筆者第二個想到的方案是:
分為4組,每組3個。開始第一次稱:將其中隨意兩組進行比較。
如果不相等,就將重的那組與另外兩組(可以推斷這兩組小球都是正常的)中隨便一組進行比較,
如果相等就說明第一次比較輕的那組中有一個球是輕的,然后只用將三個球中兩個球拿來比較,就立馬能知道哪個球是輕的。
如果不相等,那就說明這組中有一個球是重的,同上方法可以找出重的球。
如果相等,就說明另外兩組不相等。此時將相等的一組與不相等的一組進行比較,如果不相等,那么問題解決方法就像上面一樣解決。如果相等就麻煩了,因為已經比較了2次,無論如何也不可能1次比較,就能分辨出剩下那組中哪個球是輕是重。
所以第二個方案也不行。
到這里筆者覺得還是從分三組進行考慮,分四組如果運氣不好就不能得出結論。
第三種方案
分為3組,每組4個。開始第一次稱:將其中隨意兩組進行比較。
如果相等,就說明剩下的那組有問題。這里拿沒有問題的8個球中的3個與有問題組中4個球的任意3個進行比較
如果相等,就說明有問題組的剩下那個球有問題。
在將剩下那個球與沒有問題的球進行比較,就知道輕重的關系了。
如果不想等(這里可以知道有問題的球是輕是重的關系了),就說明從問題組拿出的3個球就有問題。
將這3個球隨意拿出2個球進行比較
如果相等,就說明剩下的那一個球有問題,並且由前面得到的輕重關系,可以判定此球是輕是重。
如果不相等,就通過上面輕重關系,直接找出問題球。
如果不相等(已知兩端的輕重關系),說明問題球就在這8個球中,另外四個球是沒有問題的。
那么此時就可以從天平中一端拿出3個球,在補防3個沒有問題的球。
如果相等,就說明剛才拿出的3個球是有問題,同時根據上面得到的輕重關系,就很容易從三個球中找到問題球,並判斷是輕是重問題。
如果不相等
情況一:此時的輕重關系與第一的輕重關系一樣(舉例子,第一個右邊的4個球重一些,拿出3個球,在放入3個沒有問題的球,還是右邊重,那么就可以推測重的那一端剩余的那個球有問題,或者是輕的那4個中有一個有問題)分析到這里又出問題了。
這里筆者遇到了瓶頸了,沒有辦法了,筆者思考一會沒有結果,就求助了網上。
第四種方案
分為3組,每組4個。開始第一次稱:將其中隨意兩組進行比較。
如果相等,就說明剩下的那組有問題。這里拿沒有問題的8個球中的3個與有問題組中4個球的任意3個進行比較
如果相等,就說明有問題組的剩下那個球有問題。
在將剩下那個球與沒有問題的球進行比較,就知道輕重的關系了。
如果不想等(這里可以知道有問題的球是輕是重的關系了),就說明從問題組拿出的3個球就有問題。
將這3個球隨意拿出2個球進行比較
如果相等,就說明剩下的那一個球有問題,並且由前面得到的輕重關系,可以判定此球是輕是重。
如果不相等,就通過上面輕重關系,直接找出問題球。
如果不相等(已知兩端的輕重關系),說明問題球就在這8個球中,另外四個球是沒有問題的。
這里就是將天平一端拿出3個球,在從這端從另外一端拿三個球,另外一端不放三個沒有問題的球。
情況一:如果這里不相等,而且天平沒有發生變化(舉例子:從重的那一側拿走3個球,在從輕的那一側拿來3個球,在將輕的那側補3個球,輕重關系沒有發生變化。就說明有問題球是重的那一側中剩余的球,與輕的那側剩余的球。為什么這么說,如果說是從輕側那里拿過來的三個球有問題,只可能使天平發生變化)那么這里就可以推斷是兩端沒有剩余的那個球有問題,並且知道這兩個球的輕重關系,在將其中一個球與正常球進行比較就可以得到結果了。
情況二:如果相等。就說明拿出來的三個球有問題,並且從上面可以知道這三個球是輕重問題。然后就很好找出問題球來。
情況三:如果不相等,並且使天平發生變化,就說明是從另一側拿過來的那三個球出了問題,並且知道輕重關系,就立馬得出來了。
