【Java資料結構與演算法】| 陣列--天平稱量問題
阿新 • • 發佈:2019-02-12
天平稱量問題
題目:
有12枚硬幣,其中有1枚是假幣,但不知道是重是輕。現給定衣架沒有砝碼的天平,問至少需要多少次稱量才能找到這枚硬幣?
思考:
如何證明某個方案是最少次數?
解析:
隨機將12枚硬幣等分成3份,每份4枚;標記為A,B,C三份。將A放在左側,B放在右側,用天平稱量A和B,分三種情況:
1、天平平衡
2、A(左)比B(右)重
3、A(左)比B(右)輕(這兩種情況一樣的)
分析:
1、天平平衡
- 天平平衡,說明A、B中都沒有假幣,假幣在C中,將C中的4枚編號為甲乙丙丁。
- 取甲乙用天平稱量,若平衡,說明甲乙是真幣,丙丁有一枚是假幣。
- 取甲丙用天平稱量,若不平衡,說明丙是假幣;若平衡,說明丙是真幣,丁是假幣。
2、A比B重
- 說明假幣必然在A、B中,C中的4枚都是真幣。將A中4枚硬幣編號為1234,B中編號為5678,C中編號為甲乙丙丁。
- 選125放於左側,34甲放於右側;
- 天平有三種情況:
- 天平平衡:說明678含假幣,且假幣輕
- 125比34甲重 說明12含假幣,且假幣重
- 125比34甲輕 說明34含假幣,且假幣重 或者5是假幣,且假幣輕
- 無論如何,最多再一次稱量就可得到假幣
3、理論下界
4、再次思考