12顆小球,有一顆質量不一樣的面試題

諾亞方舟hope發表於2021-01-04

今日面試,遇到了一道比較有意思的面試題,由於本人才疏學淺,所以當時並沒有答上來。回來翻閱資料後才能白其中的原理。有一種,臥槽,這麼簡單 的感覺,特此分享留念!

題目:有12課小球,其中有一顆重量不一樣,給你一個天平,要你稱3次找出哪顆小球不一樣,是重了還是輕了!

最開始我想到的是二分法查詢  即 12課球 分成 1 2 3 4 5 6   7 8 9 10 11 12 各6個 去天枰對比 ,後來發現 稱3次不夠。

回來查閱資料後,恍然大悟。不能二分 要3分 即 1234   ,5678 , 9 10 11 12

示例1:我們先假設 8 是壞小球  輕於其他小球

第一次稱:先取出 1234 和 5678稱

發現   天枰是斜的,1234重  5678輕了。可以判斷 壞小球必定在這8個數當中

 第二次稱:把  右邊的567放到左邊來,同時在右邊增加9 10 11,去掉左邊的234.

左邊這時為 1567 右邊  這時為8 9 10 11

發現 天枰還是斜的 1567重 8 9 10 11輕。可以得出 1和8可能是壞小球 1重或者8輕

第三次稱:左邊放1 右邊放 9

結果為平衡。可以斷定 8是壞小球,且重量輕了!

示例2:假設5是壞小球  重於其他小球

第一次稱:先取出 1234 和 5678稱

發現   天枰是斜的,1234輕  5678重了。可以判斷 壞小球必定在這8個數當中

 第二次稱:把  右邊的567放到左邊來,同時增加9 10 11,去掉左邊的234.

左邊這時為 1 5 6 7 右邊  這時為8 9 10 11

發現 天枰還是斜的 1 5 6 7重 8 9 10 11輕。可以得出 567重有壞小球,且重於其他小球

第三次稱:左邊 5 右邊6

發現 左邊重,右邊輕,第二次已經知道了小球是重還是輕了,那麼這裡可以直接得出  左邊的5是壞小球。

 

思考:既然分3組可以實現3次稱得出壞小球和重了還是輕了,那麼我分四組是否也可以呢?下面開始實踐

分組 1 2 3 ,4 5 6, 7 8 9, 10 11 12

示例1:假設壞球是 5  且重量輕了

第一次:123 和456 

結果 123重,456輕 表示壞球在 這六個數之間, 剩餘未上稱的都是好球

第二次:145和678

結果:145輕 678重  表示 45中有壞小球且重於其他小球

第三次 4和6

結果:平了  那5就是壞小球

我去!!!貌似可以啊!再試幾個

示例2:假設壞球是10且重量輕了

第一次:123 和456 

結果  平了,說明 789和10 11 12中才有壞小球

第二次:左邊 123和右邊789

結果 平了。。。。emmmmmmm 好像3次實現不了啊!!!在紙上演進了無數次,沒有找到3次就可以找出小球的方法!放棄!!!
本著求虐求教育的心態,如果各位看官大佬有其他的更簡單的實現方法,歡迎指教!小弟感激不盡!!!

相關文章