連結中第42樓應該就最好的解法,幫貼一下
Toluba wrote:
解答很長有耐心就慢慢...(恕刪)
首先先將分成三堆[a1,a2,a3,a4][b1,b2,b3,b4][c1,c2,c3,c4]
接下來要假設很多種情況
如果[a1,a2,a3,a4][b1,b2,b3,b4]是一樣重的
表示有問題的在[c1,c2,c3,c4]裡面
接下來取[c1,c2,c3]與正常的[a1,a2,a3]做比較
—如果一樣重,那就是[c4]有問題,拿一顆正常的來比較就知道是輕或重
—如果[c1,c2,c3]比較重,就再取[c1][c2]兩個來秤,重的那顆就是異常的,而且比正常的重,如果一樣重,那就是[c3]異常且比正常的重
—如果[c1,c2,c3]比較輕,就再取[c1][c2]兩個來秤,輕的那顆就是異常的,而且比正常的輕,如果一樣重,那就是[c3]異常且比正常的輕
如果[a1,a2,a3,a4]<[b1,b2,b3,b4],也就是[b1,b2,b3,b4]比正常來得重或者[a1,a2,a3,a4]比正常來得輕
這時候變要將a2,a3,a4拿掉放在旁邊[a2,a3,a4],並將b2,b3,b4拿過來補成[a1,b2,b3,b4]
而[b1,b2,b3,b4]這堆也得補入c2,c3,c4等正常的球,變成[b1,c2,c3,c4]
然後將[a1,b2,b3,b4][b1,c2,c3,c4]拿來秤,會出現以下情況
1.[a1,b2,b3,b4]<[b1,c2,c3,c4],表示[a1]或[b1]異常,取[a1]與正常的[c1]秤,就可以得知[a1]比較輕或者[b1]比較重
2.[a1,b2,b3,b4]=[b1,c2,c3,c4],表示[a2,a3,a4]有問題,取[a2][a3]來秤,如果不平衡,輕的那顆就是異常,如果平衡,就是[a4]比較輕
3.[a1,b2,b3,b4]>[b1,c2,c3,c4],表示[b2,b3,b4]有問題,取[b2][b3]來秤,如果不平衡,重的那顆就是異常,如果平衡,就是[b4]比較重