12球太少,我3次能稱14球,不相信?我還4次稱41球,5次122球……

來源:互聯網
上載者:User
本文原發表於我在JavaEye的技術部落格。
流傳的題目很簡單,12個乒乓球(或金幣之類的)其中一個是次品,重量與其他球不一樣(但是不知是輕了還是重了),給一個天平,看幾次可以稱出來哪個球是壞球。

這個題目很久以前在大學的BBS上發表過解法,現在找不到了,重新寫一遍也不費勁。

實際上是可以稱14球的,下面是解法(設為A1-A14)。
注意,14球的前提是有多一個標準球A0。 否則只能稱13球。

A0-A4 vs A5-A9
如果相等,則壞球在A10-A14這5個球中。

5球(重新記做A1-A5外加一個A0為標準球)的稱法如下:
A0,A1 vs A2,A3
如果相等,則壞球是A4或A5,取其中一個與A0再稱一次即可判斷(這個不用說了,人人都知道怎麼稱)。
如果不等,假設A0,A1 > A2,A3(<的話,下面的判斷都反一反即可),則再稱一次:
A2 vs A3
如果相等,則壞球是A1,否則A1就是好球,壞球在A2、A3中,根據上一次稱量結果可以判斷出,壞球比標準球輕,所以A2 vs A3的結果,輕的那個就是壞球。

如果第一次稱量不等,則壞球在A1-A9這9個球中,並且你知道一個不等關係,我們假設是A0-A4 > A5-A9(<的話,下面的判斷都反一反即可)。

然後測A1,A2,A5 vs A3,A4,A6
如果相等,則壞球在A7,A8,A9中,並且可以推匯出其中輕的那個是壞球,再稱一次肯定能找出壞的那個。
如果A1,A2,A5 > A3,A4,A6
則壞球在A1,A2,A6中,並且可以推匯出A1,A2 > A0,A6
反之壞球在A5,A3,A4中,並且可以推匯出A5,A0 < A3,A4
不難看出這兩種情況實際是等價的,只需比較兩個同處一側的球就可以判斷哪個是壞球了。

如果沒有標準球A0的話,那第一次稱量就不能5對5了,只能4對4,所以最多隻能稱13個球。第一次相等的情況跟前面完全一樣,如果不等,就是那 8個球有問題,比前面的9個還少一個,所以你肯定可以稱出來。那麼為什麼常見的題目都是12球呢?估計最初流傳時很少有人真正從理論(資訊理論)上理解這個 題,所以答案都是湊出來的,自然很難做到最佳化。

但是如果掌握了理論,這個稱球問題就可以推廣,比如4次最多可以稱量27+14=41個。前提也是你多一個標準球,這樣第一次稱量就是14 vs 13+1,如果相等,壞球就在剩下的14個裡,就轉化為了前面描述的14球稱量問題。如果不等,則壞球在27個裡,通過合理調配,你肯定可以把它們區別成 3組分別9個,通過一次稱量判斷出壞球到底是在哪9個球中。因為一次稱量有3種狀態,可以把一堆球分成3組。以下每次都是3組1分,所以27=3的3次方 就是表示3次稱量就可以區分出來了。

不難看出,如果5次的話,可以最多稱量27*3+41=122個,以下可以逐級類推,有興趣的同志可以求出它的公式。

最後是一個思考題,既然可以3個一組分,為什麼3次稱量只能稱14個而不是27個呢?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.