Google研發面試題
今天很開心找到了一個很不錯的研發面試題,很考驗臨時反應能力,特地拿出來和大家分享一下此題以及自己做該題的心得體會!!!
題目:
總共有12個外表都一樣的金屬球,其中有11個球的重量是相同的,1個球的重量可能比其他11個球要重,也可能比較其他11個球輕,這個球稱之為異常球,問:如何利用一個天平來稱重三次找出這個異常球?
下面來講解我的思路,希望大家拿出筆和紙。
首先我們將12個球分為三份,將球依次排好序號為1-12,如下:
A組選手:1,2,3,4 B組選手:5,6,7,8 C組選手:9,10,11,12
任意拿出兩組放在天平兩邊,下面我們就以拿出A,B比較。
【1】如果A == B,因為只有1個異常球,而A == B,則說明C組(9,10,11,12)異常球:
緊接著從C組(異常組中)取出3個球,從正常組A或者B組中也取出3個球來進行比較,例如我們取出B組6,7,8【左邊】 vs C組9,10,11 【右邊】
如果天平平衡,則C組剩下的球就為異常球,這樣就比較2次;
如果天平不平衡,那就知道了異常球是重還是輕,
那就從右邊的三個球中再任取兩個,放入天平中:
如果天平平衡,剩下的球即為異常球;這樣就比較2次
如果不平衡,則可根據上面已經得出的結論:異常球是重還是輕的結論判斷哪一個是異常球,這樣比較3次
【2】如果A != B,因為只有1個異常球,則說明C組為標準球,異常球在A組或者B組中
此時要分兩種情況來分析:
(1)左側重右側輕即1,2,3,4 > 5,6,7,8;(2)左側輕右側重即1,2,3,4 < 5,6,7,8
========》
(1)左側重右側輕即1,2,3,4 > 5,6,7,8 【異常球可能是1,2,3,4重,或者5,6,7,8輕】
然後我們比較1,6,7,8 和5,9,10,11 ------>(9,10,11是正常球標準球)
如果平衡,就可以說明,1,6,7,8和5 是標準球,結合上一個比較結果,可以得出的是異常球為2,3,4且為重球,這樣從2,3,4裡面找兩個球比對一下即可,這樣就比較3次;
如果不平衡:
左側重:則1為異常重球,這樣就比較2次
左側輕:異常球是6,7,8且為輕球,從三個球中選出兩個再次稱一次選擇輕的即可,這樣就比較3次
(2)左側輕右側重即1,2,3,4 < 5,6,7,8 解法同上面差不多,這個留給大家思考(思路一樣,比較簡單)
上面就是關於這個題目,我的思路和解法,歡迎大家指正!!!寫完正好凌晨一點鐘,晚上嘍!
&n