问题描述:
有12枚硬币,其中有一枚是假币,但是不知道是重还是轻。现给定一架没有砝码的天枰,问至少需要多少次称量才能找到这枚硬币?如何证明给出的方案是最少次数?
思路分析:
我们首先想到的可能是将12枚硬币分成两堆,每堆6枚放到天枰上称量,这样的得到的结果一定是天枰是倾斜的。得不到任何其他信息,反而白白浪费了一次称量机会。因此第一次称量一定是选择一部分去称量,利用均分原理,天枰左边放一部分硬币,右边放一部分硬币,还剩下一部分硬币。从平均情况考虑,三部分中含有假币的概率是相等的。因此,第一次称量中,我们可以将12枚硬币分成3份,每份4枚硬币,记为甲、乙、丙。
取甲、乙放到天枰上称量,一共会出现3种情况:
- 平衡:说明甲乙中都不会含有假币,则假币一定在丙中,记丙中的4枚硬币为A、B、C、D。(依然不能将4枚硬币分成2份!无意义!!)取A、B放到天枰上称量,则又会出现三种不同情况:
- AB平衡:AB不可能为假币,一定在C、D中。
- 取C与A量,若平衡,说明D是假币;若不平衡,说明C是假币。
- A重/B重:A为假或B为假。取甲中任意一枚(真币)与A称量。若平说明B为假币,且假币轻;若依然A重,说明A为假币且假币重;
- AB平衡:AB不可能为假币,一定在C、D中。
- 左倾:说明假币在甲或乙中。分别记甲中四枚硬币为ABCD,乙中四枚硬币为EFGH,丙中四枚硬币为IJKL(都是真币)。取ABE和CDI称量,则会出现
- 若ABE与CDI平衡,则说明他们都是真币。FGH为假币且假币轻。取FG称量:
- 若平衡,说明H为假币;
- 否则FG中谁轻谁是假币。
- 若左倾(即ABE重,CDI轻)。第一次称时,ABCD>EFGH。所以假币在AB中,且假币重;
- A与I在称量一次,若平则B是假币,若A重,则A是假币。
- 若右倾(即ABE轻,CDI重)。第一次称时,ABCD>EFGH。所以假币在CD中,且假币重;
- C与I再称量一次,若平则D是假币,若C重,则C是假币。
- 若ABE与CDI平衡,则说明他们都是真币。FGH为假币且假币轻。取FG称量:
- 右倾:(与左倾情况完全对称)
通过上面的分析可知,无论什么情况,3次称量就可以得出哪个是假币。
理论分析:
- 一次天枰称量能够得到左倾、右倾、平衡3种情况,如果把一次称量当做是一次编码,则它是3进制编码才能够表示;
- 我们想要用3进制编码表示的是:12枚硬币,且假币的轻重未知。
- 每枚硬币都可能是假币,共12种情况,假币有可能比真币轻,也有可能重,共12*2=24种情况;
- 3n>=24 则n至少为3才可以。
- 所以从信息论的角度讲,3次称量是最小值。
时间: 2024-10-13 07:52:20