秤球问题
一、特殊情况12个小球的情况
问题1: 有12只球,编号1--12,它们外形相同,除其中1只略轻(称作坏球)外,其余重量相等.要求用一架天平称量3次,找出这只坏球.
解法:
第一次称量 | 第二次称量 | 第三次称量 | 结论 : 坏球为 |
1,2,3,4<5,6,7,8 | 1,2<3,4 | 1<2 | 1 |
1>2 | 2 | ||
1,2>3,4 | 3<4 | 3 | |
3>4 | 4 | ||
1,2,3,4>5,6,7,8 | 5,6<7,8 | 5<6 | 5 |
5>6 | 6 | ||
5,6>7,8 | 7<8 | 7 | |
7>8 | 8 | ||
1,2,3,4=5,6,7,8 | 9,10<11,12 | 9<10 | 9 |
9>10 | 10 | ||
9,10>11,12 | 11<12 | 11 | |
11>12 | 12 |
问题2:有12只球,编号1--12,它们外形相同,其中有11只重量相等,另外1只重量略有不同(称作坏球),但不知这只球是偏轻还是偏重.要求用一架天平称量3次,找出这只坏球,并判定它是偏轻还是偏重。
解法:
第一次称量 | 第二次称量 | 第三次称量 | 结论 : 坏球为 |
1,2,3,4<5,6,7,8 | 1,5,6<2,8,9 | 1<9 | 1 轻 |
1=9 | 8 重 | ||
1,5,6=2,8,9 | 3<4 | 3 轻 | |
3=4 | 7 重 | ||
3>4 | 4 轻 | ||
1,5,6>2,8,9 | 5<6 | 6 重 | |
5=6 | 2 轻 | ||
5>6 | 5 重 | ||
1,2,3,4=5,6,7,8 | 9,10<5,11 | 9<10 | 9 轻 |
9=10 | 11 重 | ||
9>10 | 10 轻 | ||
9,10=5,11 | 1<12 | 12 重 | |
1>12 | 12 轻 | ||
9,10>5,11 | 9<10 | 10重 | |
9=10 | 11 轻 | ||
9>10 | 9 重 | ||
1,2,3,4>5,6,7,8 | 1,5,6<2,8,9 | 5<6 | 5 轻 |
5=6 | 2 重 | ||
5>6 | 6 轻 | ||
1,5,6=2,8,9 | 3<4 | 4 重 | |
3=4 | 7 轻 | ||
3>4 | 3 重 | ||
1,5,6>2,8,9 | 1=2 | 8 轻 | |
1>2 | 1 重 |
二、一般性总结
称球问题是网络上流传得比较广的一个智力题。最常见的一种形式是这样的:
有12个外观相同的小球,其中有一个球是坏球,坏球和好球的重量不同。利用一架天平,在三次以内找到坏球,并得知坏球比好球轻还是重。
在这里,我不打算给出这道题的解法,而是给出一个思考过程以及通解。我尽量说得简单一点,不会太难,即使是文科出身也不用害怕。
我们每使用一次天平,得到结果可能是左低右高,左高右低和平衡三种。那么使用t次天平,得到的结果最多有3t种。而每一个小球都可能是坏球,坏球又有偏轻或偏重两种可能,所以N个小球一共有2N种可能。我们指出坏球的位置和性质的依据是什么呢?当然是通过使用天平得到的信息。每一种可能的天平状态组合都代表一种坏球的排列。每使用一次天平,都能把坏球可能出现的范围缩小,最后锁定目标。所以这道题有解的条件应当是2N≤3t。考虑到左边是偶数而右边是奇数,所以条件其实是2N≤3t-1。
就这么简单?噢,不。我们还有一点没有考虑到,上面那个结论其实是不成立的。下面这个过程有点复杂,请听清楚啦。对于N=(3t-1)/2个小球,我们放到天平左盘和右盘的个数都是a。无论天平是左低右高还是左高右低。嫌疑犯(坏球)和嫌疑犯性别(坏球的轻重)的组合都被减少到2a个。例如左低右高的情况下,坏球要么在左边a个里且比较轻,要么在右边a个里且比较重。要是天平平衡了呢?嫌犯就一定在天平外的b个球里面。搭配上性别则一共有2b种可能。而天平的三种状态所圈定的嫌犯范围之和应该就是使用天平前嫌犯的范围。所以2a+2a+2b=2N=3t-1。那么应该怎样设置a和b的大小比较合适呢?对,应该让a和b尽可能接近,这样不管这次称量的结果如何,剩下的工作量都几乎相同。以避免某些情况下两三次就解决了战斗,有些情况却路漫漫而修远。
理想的分解是2a=3t-1,而2b=3t-1-1。这样无论哪种情况,我们都可以用不超过t-1次完成剩下的工作。但我们不能这么做--因为2a是偶数而3t-1是奇数!这种时候,我们最好的办法也只是把它分解成3t-1-1|3t-1-1|3t-1+1。也就是说,要是这时天平平衡了,整个工程就不能使用t次天平完成。
考虑到这一点,新的定理是:
当2N≤3t-3时,我们能够在t次内找到N个球内唯一一颗坏球,并得知其比标准球轻还是重。
顺便补充一点,如果不需要知道坏球比标准球轻还是重,那么满足2N≤3t-1就够了。这个结论的证明比前面的推导过程还要复杂一些,在这里我就不多说了,有兴趣的话我可以单独解释。到现在为止,你已经知道网上的题目哪些是有解的,哪些是没解的。比如12个球称三次就完全够了,再多一个球,我们就有没法判断球轻重的时候。而14个球,3次以内找到坏球只能凭运气。下次要是再有朋友给你乱出题,你就可以义正严辞的回绝他了。
现在我要给出通解啦。为了简化下面的过程,我们假设小球的个数正好是(3t-3)/2。
首先我们把小球分成数量相等的三组A1~An|B1~Bn|C1~Cn,其中n=(3t-1-1)/2。第一次使用天平的时候,不妨把A组和B组分别放在天平左右盘。如果天平左低右高,那么有可能因为左边n个小球之一较重,也可能因为右边n个小球之一较轻。反过来也是一样。这种时候,转到下面的情况(1)处理。而天平平衡的时候,则坏球一定在剩下n个小球中,(2)讨论了这种问题。
【情况1】这时的条件是:已知A1~An中一个球较重,或者B1~Bn中一个球较轻,其中n=(3t-1-1)/2。我们把可以在C中任意拿出一个好球(C中的都是好球嘛)放到B中去。然后由情况(3)讨论接下来的处理方法。
【情况2】这时的条件是:已知坏球C1~Cn中,且不知轻重关系,其中n=(3t-1-1)/2。我们把C分作三组a1~am|b1~bm|c1~cm+1,其中m=(3t-2-1)/2。注意看啦,c组要比a,b两组多出一个。怎么?我们昨天不是说这种情况没办法完成吗?但是,我们现在多了一项武器--好球。对,我们可以从已经判断为一定是好球的A,B组中任意拿出一个好球,和a一起放到天平左盘,把c组放到天平右盘,如果天平左低右高,那么一定是a组中m个球较重或者c组重m+1个球较轻,反过来也于这个类似,情况(3)正是讨论这种问题的。如果平衡的话,说明b组的m=(3t-2-1)/2个小球是问题小球,这不正好和我们当前要讨论的问题一样吗?所以我们又回到了情况(2)。
【情况3】这种情况最为复杂,我们知道的是a1~am中一个小球较重,或者c1~cm+1中的一个小球较轻,其中m=(3t-2-1)/2。另外,还有一个标准小球。我们把a分为α1~αs|β1~βs|γ1~γs+1三组;把c分为ε1~εs+1|ξ1~ξs+1|ζ1~ζs,其中s=(3t-3-1)/2。把αε放再天平左盘,βξ放在天平右盘。要是天平平衡,说明要么γ组的s+1个小球较重,要么ζ组的s个小球较轻,这恰恰是一个更小规模的情况(3)。要是天平不平衡呢?以左低右高为例,左盘是αε而右盘是βξ,这种情况不可能是由ε较重引起的--如果ε中的球有坏球,它只会比好球轻。同样也不会是β较轻引起的。所以,这个时候,要么是α中的s个球之一较重,要么是ξ中的s+1个球之一较轻。这同样是情况(3)。
好了,到这里所有的情况都有了一个递归的算法。可以把问题分解直到下面这些情况:
- 使用一次天平,一个标准球,判断一个坏球是轻还是重。
- 有两个球,要么其中一个球较重,要么其中一个球较轻,仍然有标准球可以利用,使用一次天平找到坏球。
- 三个球,要么是1号与2号球之一比较重,要么是3号球比较轻。使用一次天平找到坏球。
相信这三个问题相当简单吧。什么,你不知道最后一种怎么做?呃,1号2号上天平,要是倾斜了,低的那边是坏球;平衡的话……
好了,你可以尝试使用五次天平解决120个球了。不过,一定要先找到一张非常非常大的纸。
另外补充一点:对于(3t-1)/2个小球,如果另外给定一个标准球的话,就能以情况(2)为入口,在t次内找到坏球,并得知其偏重还是偏轻。而少了一个标准球,就只能保证找到坏球,网路上的13球问题就是这样的。