有12颗小球,外观一样。其中有一颗的质量与其它11颗有差距(至于是比其它小球是轻是重未知)。现在可用的工具是一架天平。要求称3次找到这个与众不同的小球。
ps:不考虑运气以及外界因素(即理想状态的最坏打算)。
---------------------------------------------------------------
首先将球分成四堆:标为甲乙丙三组
首先将甲乙两组放上天平,看是否平衡?(第一次使用天平)
有两种情况:1、天平平衡。2、天平不平衡。
第一种情况:可以判断次品球在丙盘内。然后从丙盘中取出三个球与乙盘中任三个球交换。看天平是否平衡?(第二次使用天平)
{
有两种情况:1、天平平衡。2、天平不平衡。
第一种情况:可以断定丙盘中剩下的那个就是次品。
第二种情况:可以断定刚从丙盘中取出的三个球中有一个是次品。且可以判断出次品
球是轻还是重!!!!!(主要看天平乙盘是下降还是上升:下降,次品球重。上
升,次品球轻)要想从三个球中找出哪个是次品球,且已知次品球是轻是重,就不用
我说了吧!!!!!!!!
}
第二种情况:可以判断出丙盘中全为好球。不是一般性,
假设甲盘重。
然后从丙盘中取出三个球与乙盘中任三个球交换。
然后将乙盘中剩下的那只球与甲盘中的任一球交换。
看天平是否平衡?(第二次使用天平)
{
有两种情况:1、天平平衡。2、天平不平衡。
第一种情况:可以判断出从乙盘中取出的三只球中有一为次品,且次品球轻。下面最后
一步就不用我说了,与上同。
第二种情况:此时天平不平衡时有两种情况。1、不会改变甲乙两盘的原有位置。2、改
变甲乙两盘的原有位置。
{
1、可以判断次品球在甲盘剩下的三只球中,且次品球重。下面最后一步就不用我说
了,与上同。
2、可以判断从乙盘中与甲盘中交换的两只球中有一只必为次品,但此时不知道次品球
是轻还是重。
最后一次使用天平是从两只球挑出次品球,应该不用我说了吧。
}
}
称球问题一般会有以下3种变形:
1、n个球,其中有一个坏的,知道是轻还是重,用天平称出坏球来。
2、n个球,其中有一个坏的,不知是轻还是重,用天平称出坏球来。
3、n个球,其中有一个坏的,不知是轻还是重,用天平称出坏球来,并告知坏球是轻还是重。
对于上面3种情况,称量n次,最多可以在几个球中找出坏球来?
答案:分别为:3^n, (3^n - 1)/2, (3^n - 3)/2.
称法体现在下面的证明中:
一、
天平称重,有两个托盘比较轻重,加上托盘外面,也就是每次称重有3个结果,就是ln3/ln2比特信息。n个球要知道其中一个不同的球,如果知道那个不同重量的球是轻还是重,找出来的话那就是n个结果中的一种,就是有ln(n)/ln2比特信息,
假设我们要称k次,根据信息理论:
k*ln3/ln2>=ln(n)/ln2, 解得k>=ln(n)/ln3
这是得到下限,可以很轻易证明满足条件的最小正整数k就是所求。比如称3次知道轻重可以从3^3=27个球中找出不同的球出来。
具体称法就是:每次再待定的n个球中取[(n+2)/3]个球,放在天平左边;[(n+2)/3]个球放在天平右边。
(注:[ x ]表示不大于x的最大整数。)
二、
BBS水木清华站∶精华区
发信人: idle (回归线), 信区: GreatTurn
标 题: 称小球问题终结----m次称出(3^m-1)/2个球的解法
发信站: BBS 水木清华站 (Sat Jul 25 09:10:51 1998)
对于N(m)=(3^m-1)/2个小球,现在我们来寻求m次的解法。
首先,对于m=2的情况,相当于四个小球来称两次的情况,这个已经讨论过多次了,也很简单,在此略去
其次,若m<=k-1时,假定对于N(k-1)=(3^(k-1)-1)/2个球的情况我们都有解法。
现在来考虑m=k的情况。
第一次称取[3^(k-1)-1]个球放在天平天平两端,则:
如果平衡,获得[3^(k-1)-1]个标准球,坏球在剩下的[3^(k-1)+1]/2个中。由于
[3^(k-1)-1]>=[3^(k-1)+1]/2,(k>=2),即已知的标准球数不小于未知球数;
所以在以后的测量中就相当于任意给定标准球的情况,由前面的引理二可知
对于[3^(k-1)+1]/2的情况(k-1)次可解。
如果不平衡,大的那方记做A,小的那方记作B。标准球记做C.
则现在我们有[3^(k-1)-1]/2个A球和B球,有[3^(k-1)+1]/2个C球。
第二次用3^(k-2)个A球加[3^(k-2)-1]/2个B球放左边;
3^(k-2)个C球加[3^(k-2)-1]/2个A球放右边。
如果左边大于右边,则说明是在左边的3^(k-2)个A球中质量大的为坏球;
如果左边等于右边,则说明是在第二次称时没用的3^(k-2)个B球中质量轻
的为坏球。以上两种情况都可以再用三分法(k-2)次解决,加上前两
次共k次解决。
如果左边小于右边,则坏球在左边的[3^(k-2)-1]/2个B球中或在右边的同样
数目的A球中。此时的情况和第二次开始时类似(只不过是k-1变成k-2).
用相同的办法一直往下追溯到一个A球和一个B球一次区分的情况,这时
只需拿A球和标准球比较以下就行了。
因此在这种情况下也是可以最终用k次解决的。
由以上两步加上数学归纳法知,对于N(m)=(3^m-1)/2的情况,称m次是可以称出来的。
由这个解法加上前面所给出的上界Nmax(m)<=(3^m-1)/2,知称m次能解决的最大的小球数
Nmax(m)=(3^m-1)/2。
有兴趣的人可以验证一下m=3,N=13的情况----该情况已经被反复拿出来讨论过了。
三、
发信人: Nature (成长的烦恼), 信区: Mathematics
标 题: [转载] 关于称球问题的我的解答
发信站: 南京大学小百合站 (Wed Nov 8 17:47:05 2000), 站内信件
【 以下文字转载自 Algorithm 讨论区 】
【 原文由 grass 所发表 】
我们来分析第一次称的三堆球:
(一)若不平衡,我们得到的信息是:
1. 坏球在天边上的两堆里;
2. 有一堆的球重,一堆轻。
大家往往会忽视第二条信息,实际上这条信息是非常重要的。
若我们知道一些球的轻重关系,我们可以用比不知道这个关系称的次数更少就得出结论。如:若告诉你坏球轻,那么27个球只要三次就够了。
所以我们要研究一下,若我们知道一些球的轻重关系,n次最多可以称出多少个球。我们用函数h(n)表示。
(二)若平衡,则得到的信息是:
1. 坏球在剩下的一堆中;
2. 有若干个好球可以给我们利用。
第二条信息又是大家容易忽视的。就如12个球,称第一次若平衡,我们就可以用天平上
的球作为标准球。有标准球,两次可以称称出4个球(见第一试题解答部分的2—5);若
没有的话,就只能称出3个球。
所以我们还要研究一下,若我们有一个标准球,n次最多可以称出多少个球。我们
用函数g(n)表示。
定义一:若一个球,若知道它不可能偏重(或知道不可能偏轻),则我们称此球为半确定重球(或半确定轻球);半确定重球和半确定轻球统称为半确定球。
第一题中,通过第一次称重后,若不平衡,则1,2,3,4,5,6,7,8号球都成为半确定球,
若1,2,3,4〈5,6,7,8,则1,2,3,4为半确定轻球,5,6,7,8为半确定重球。
定义二:若一个球,若知道它是好球,则我们称此球为确定好球;若知道是坏球,确定坏球。确定好球和确定好球统称为确定球。
第一题中,通过第一次称重后,若平衡,则1,2,3,4,5,6,7,8号球都成为确定球好球。
定义三:若一个球,既不是确定球,也不是半确定球若,则我们称此球为不确定球。
第一题中,通过第一次称重后,则9,10,11,12号球都成为不确定球。
一次未称之前,所有球都是不确定球。
引理一、对于放上过天平的球,都是半确定球或是确定球
这是个显然成立的命题。
定义四:若所有球都是半确定球,那么n次可称出的球的最大个数我们用 h(n)表示。
引理二:h(n)=3^n。
证明:
用归纳法来证:
⑴对于n=1,先证3个球是可称的,再证4个是不可称的。
① 3个球可称,
若全为半确定重球,任意挑两个,若不平衡,重的就是坏重球;否则,剩下的那个就是坏重球;
全为半确定轻球同理;
若两个半确定重球,一个半确定轻球,则称两个两半确定重球,若不平衡,重的就是确定重球;否则,剩下的那个就是确定轻球;
若一个半确定重球,两个半确定轻球同理。
所以,3个求可称。
②四个球不可称
若是4个球,天平称一次,只能提供三条信息,由抽屉原理,必然有两个球的信息是相同的。故一次无法保证能判断出来。
故,n=1是h(n)=3^n是成立的。
⑵设n = k时命题成立,对于n=k+1
①先证t=3^(k+1)个球是可判断的:
设t中有a个半确定重球,b个半确定轻球,t =a + b ;
由对称性,不妨设a>b (a + b是奇数,所以不可能相等)
按如下方法分为三堆:
若a>=2*(3^k),则天平两边各放3^k个半确定重球。若不平衡,坏球在重的那堆中;平衡的话,坏球在剩下的那堆中。这时剩3^k个球,k次可判断出来,共k+1次,成立。
若a<2*(3^k), 则天平两边各放[a/2]个半确定重球,3^k-[a/2]个半确定轻球。若不平衡,坏球在重的那堆中的半确定重球或轻的那堆半确定轻球中;平衡的话,坏球在剩下的那堆中。这时剩3^k个球,k次可判断出来,共k+1次,成立。
a < b 同理可证。
所以3^(k+1)个球是可判断的。
②若3^(k+1)+1个球,称一次,只能提供三条信息,由抽屉原理,必然有3^k+1个球的信息是相同的,这3^k+1个球无法用k次称出。故k+1次无法保证能判断出来。
故,n=k+1也成立。
由归纳法,h(n)=3^n对一切自然数都成立。
再回到原题,来求f(n).
对于第一次处理后,若不平衡,天平两边的球都将成为半确定球。设两边球个数各为a个,另外一堆个数为b个。易知,a与b相互独立。为使得f(n)=2a+b最大,即要分别求出a , b的最大值。
由引理二,这2a个半确定球要在n-1次判断出,当且仅当
2a <= h (n-1)=3^(n-1).
但等号无法取到,因为3^(n-1)为奇数,所以2a<=3(n-1)-1,
max(a)=(3^(n-1)-1)/2
f(n)=(3^(n-1)-1)+max(b)
定义四、给一个确定好球,n次能称的最多非确定球的个数用g(n)表示。
引理三:g(n)=f(n)+1
若有任意确定好球的话,g(n)比f(n)可提高效率的地方就在于第一次称的时候可以两边放的非确定球的个数不一样多。一边放c个不确定球,一边放a个不确定球和c-a个确定好
球,剩下一堆为b个。平衡的话,b个球的处理同f(n),所以此时的max(b)显然等于f(n)的max(b)。若不平衡的话,就有a + c个不确定球。
a + c <= 3 ^ ( n – 1 ) (等号可取)
令c=a+1=(3^(n-1)+1)/2,则此时只需要一个确定好球,
g(n)=max(a + c)+max(b)=3^(n-1)+max(b)=f(n)+1
再来研究max(b).若不平衡,则b个球全为确定好球,否则,全为非确定球。但天平上的球
全为确定好球。这时的b就恰好同我们刚刚讨论的g(n). 即有
max(b)=g(n-1)=f(n-1)+1.
故有f(n)=3^(n-1)-1+f(n-1)+1 =f(n-1)+3^(n-1)
这是一个递推公式。
我们又易知,f(2)=3 ,所以易解得
f (n)=(3^n-3) / 2
故,称n次,最多可以在(3^n-3) / 2个球中找出坏球来。(坏球只有一个)
当n=3时,即第一题,f(3)=12. 3次能称得的最大数目将是12个。
--------------------------------------------------------------------------
12个球称3次和13个球称3次的方法的树型结构表示:
这样大家也许能看得更清楚一点。
V表示上一排重于下一排的,
A表示下一排重于上一排的。
最后0表示这种情况不存在。
12:
¦ 1 ¦ V 1,H
¦ V ¦ vs-- ¦ = 6,L
¦ ¦ 2 ¦ A 2,H
¦
¦ 1,2,5 ¦ ¦ 1 ¦ V 7,L
¦ V ¦ vs--- ¦ = ¦ vs-- ¦ = 8,L
¦ ¦ 3,4,6 ¦ ¦ 7 ¦ A 0
¦ ¦
¦ ¦ ¦ 3 ¦ V 3,H
¦ ¦ A ¦ vs-- ¦ = 5,L
¦ ¦ 4 ¦ A 4,H
¦
¦
¦ ¦ 9 ¦ V 9, H
¦ ¦ V ¦ vs-- ¦ = 11,L
¦ ¦ ¦ 10 ¦ A 10,H
¦ ¦
1,2,3,4 ¦ ¦ 9,10 ¦ ¦ 1 ¦ V 12,L
vs----- ¦ = ¦ vs--- ¦ = ¦ vs-- ¦ = 0
5,6,7,8 ¦ ¦ 1,11 ¦ ¦ 12 ¦ A 12,H
¦ ¦
¦ ¦ ¦ 9 ¦ V 10,L
¦ ¦ A ¦ vs-- ¦ = 11,H
¦ ¦ 10 ¦ A 9, L
¦
¦ A 类似V
13:
¦ 1 ¦ V 1,H
¦ V ¦ vs-- ¦ = 6,L
¦ ¦ 2 ¦ A 2,H
¦
¦ 1,2,5 ¦ ¦ 1 ¦ V 7,L
¦ V ¦ vs--- ¦ = ¦ vs-- ¦ = 8,L
¦ ¦ 3,4,6 ¦ ¦ 7 ¦ A 0
¦ ¦
¦ ¦ ¦ 3 ¦ V 3,H
¦ ¦ A ¦ vs-- ¦ = 5,L
¦ ¦ 4 ¦ A 4,H
¦
¦
¦ ¦ 9 ¦ V 9, H
¦ ¦ V ¦ vs-- ¦ = 11,L
¦ ¦ ¦ 10 ¦ A 10,H
¦ ¦
1,2,3,4 ¦ ¦ 9,10 ¦ ¦ 1 ¦ V 12,L
vs----- ¦ = ¦ vs--- ¦ = ¦ vs-- ¦ = 13
5,6,7,8 ¦ ¦ 1,11 ¦ ¦ 12 ¦ A 12,H
¦ ¦
¦ ¦ ¦ 9 ¦ V 10,L
¦ ¦ A ¦ vs-- ¦ = 11,H
¦ ¦ 10 ¦ A 9, L
¦
¦ A 类似V
ps:不考虑运气以及外界因素(即理想状态的最坏打算)。
---------------------------------------------------------------
首先将球分成四堆:标为甲乙丙三组
首先将甲乙两组放上天平,看是否平衡?(第一次使用天平)
有两种情况:1、天平平衡。2、天平不平衡。
第一种情况:可以判断次品球在丙盘内。然后从丙盘中取出三个球与乙盘中任三个球交换。看天平是否平衡?(第二次使用天平)
{
有两种情况:1、天平平衡。2、天平不平衡。
第一种情况:可以断定丙盘中剩下的那个就是次品。
第二种情况:可以断定刚从丙盘中取出的三个球中有一个是次品。且可以判断出次品
球是轻还是重!!!!!(主要看天平乙盘是下降还是上升:下降,次品球重。上
升,次品球轻)要想从三个球中找出哪个是次品球,且已知次品球是轻是重,就不用
我说了吧!!!!!!!!
}
第二种情况:可以判断出丙盘中全为好球。不是一般性,
假设甲盘重。
然后从丙盘中取出三个球与乙盘中任三个球交换。
然后将乙盘中剩下的那只球与甲盘中的任一球交换。
看天平是否平衡?(第二次使用天平)
{
有两种情况:1、天平平衡。2、天平不平衡。
第一种情况:可以判断出从乙盘中取出的三只球中有一为次品,且次品球轻。下面最后
一步就不用我说了,与上同。
第二种情况:此时天平不平衡时有两种情况。1、不会改变甲乙两盘的原有位置。2、改
变甲乙两盘的原有位置。
{
1、可以判断次品球在甲盘剩下的三只球中,且次品球重。下面最后一步就不用我说
了,与上同。
2、可以判断从乙盘中与甲盘中交换的两只球中有一只必为次品,但此时不知道次品球
是轻还是重。
最后一次使用天平是从两只球挑出次品球,应该不用我说了吧。
}
}
称球问题一般会有以下3种变形:
1、n个球,其中有一个坏的,知道是轻还是重,用天平称出坏球来。
2、n个球,其中有一个坏的,不知是轻还是重,用天平称出坏球来。
3、n个球,其中有一个坏的,不知是轻还是重,用天平称出坏球来,并告知坏球是轻还是重。
对于上面3种情况,称量n次,最多可以在几个球中找出坏球来?
答案:分别为:3^n, (3^n - 1)/2, (3^n - 3)/2.
称法体现在下面的证明中:
一、
天平称重,有两个托盘比较轻重,加上托盘外面,也就是每次称重有3个结果,就是ln3/ln2比特信息。n个球要知道其中一个不同的球,如果知道那个不同重量的球是轻还是重,找出来的话那就是n个结果中的一种,就是有ln(n)/ln2比特信息,
假设我们要称k次,根据信息理论:
k*ln3/ln2>=ln(n)/ln2, 解得k>=ln(n)/ln3
这是得到下限,可以很轻易证明满足条件的最小正整数k就是所求。比如称3次知道轻重可以从3^3=27个球中找出不同的球出来。
具体称法就是:每次再待定的n个球中取[(n+2)/3]个球,放在天平左边;[(n+2)/3]个球放在天平右边。
(注:[ x ]表示不大于x的最大整数。)
二、
BBS水木清华站∶精华区
发信人: idle (回归线), 信区: GreatTurn
标 题: 称小球问题终结----m次称出(3^m-1)/2个球的解法
发信站: BBS 水木清华站 (Sat Jul 25 09:10:51 1998)
对于N(m)=(3^m-1)/2个小球,现在我们来寻求m次的解法。
首先,对于m=2的情况,相当于四个小球来称两次的情况,这个已经讨论过多次了,也很简单,在此略去
其次,若m<=k-1时,假定对于N(k-1)=(3^(k-1)-1)/2个球的情况我们都有解法。
现在来考虑m=k的情况。
第一次称取[3^(k-1)-1]个球放在天平天平两端,则:
如果平衡,获得[3^(k-1)-1]个标准球,坏球在剩下的[3^(k-1)+1]/2个中。由于
[3^(k-1)-1]>=[3^(k-1)+1]/2,(k>=2),即已知的标准球数不小于未知球数;
所以在以后的测量中就相当于任意给定标准球的情况,由前面的引理二可知
对于[3^(k-1)+1]/2的情况(k-1)次可解。
如果不平衡,大的那方记做A,小的那方记作B。标准球记做C.
则现在我们有[3^(k-1)-1]/2个A球和B球,有[3^(k-1)+1]/2个C球。
第二次用3^(k-2)个A球加[3^(k-2)-1]/2个B球放左边;
3^(k-2)个C球加[3^(k-2)-1]/2个A球放右边。
如果左边大于右边,则说明是在左边的3^(k-2)个A球中质量大的为坏球;
如果左边等于右边,则说明是在第二次称时没用的3^(k-2)个B球中质量轻
的为坏球。以上两种情况都可以再用三分法(k-2)次解决,加上前两
次共k次解决。
如果左边小于右边,则坏球在左边的[3^(k-2)-1]/2个B球中或在右边的同样
数目的A球中。此时的情况和第二次开始时类似(只不过是k-1变成k-2).
用相同的办法一直往下追溯到一个A球和一个B球一次区分的情况,这时
只需拿A球和标准球比较以下就行了。
因此在这种情况下也是可以最终用k次解决的。
由以上两步加上数学归纳法知,对于N(m)=(3^m-1)/2的情况,称m次是可以称出来的。
由这个解法加上前面所给出的上界Nmax(m)<=(3^m-1)/2,知称m次能解决的最大的小球数
Nmax(m)=(3^m-1)/2。
有兴趣的人可以验证一下m=3,N=13的情况----该情况已经被反复拿出来讨论过了。
三、
发信人: Nature (成长的烦恼), 信区: Mathematics
标 题: [转载] 关于称球问题的我的解答
发信站: 南京大学小百合站 (Wed Nov 8 17:47:05 2000), 站内信件
【 以下文字转载自 Algorithm 讨论区 】
【 原文由 grass 所发表 】
我们来分析第一次称的三堆球:
(一)若不平衡,我们得到的信息是:
1. 坏球在天边上的两堆里;
2. 有一堆的球重,一堆轻。
大家往往会忽视第二条信息,实际上这条信息是非常重要的。
若我们知道一些球的轻重关系,我们可以用比不知道这个关系称的次数更少就得出结论。如:若告诉你坏球轻,那么27个球只要三次就够了。
所以我们要研究一下,若我们知道一些球的轻重关系,n次最多可以称出多少个球。我们用函数h(n)表示。
(二)若平衡,则得到的信息是:
1. 坏球在剩下的一堆中;
2. 有若干个好球可以给我们利用。
第二条信息又是大家容易忽视的。就如12个球,称第一次若平衡,我们就可以用天平上
的球作为标准球。有标准球,两次可以称称出4个球(见第一试题解答部分的2—5);若
没有的话,就只能称出3个球。
所以我们还要研究一下,若我们有一个标准球,n次最多可以称出多少个球。我们
用函数g(n)表示。
定义一:若一个球,若知道它不可能偏重(或知道不可能偏轻),则我们称此球为半确定重球(或半确定轻球);半确定重球和半确定轻球统称为半确定球。
第一题中,通过第一次称重后,若不平衡,则1,2,3,4,5,6,7,8号球都成为半确定球,
若1,2,3,4〈5,6,7,8,则1,2,3,4为半确定轻球,5,6,7,8为半确定重球。
定义二:若一个球,若知道它是好球,则我们称此球为确定好球;若知道是坏球,确定坏球。确定好球和确定好球统称为确定球。
第一题中,通过第一次称重后,若平衡,则1,2,3,4,5,6,7,8号球都成为确定球好球。
定义三:若一个球,既不是确定球,也不是半确定球若,则我们称此球为不确定球。
第一题中,通过第一次称重后,则9,10,11,12号球都成为不确定球。
一次未称之前,所有球都是不确定球。
引理一、对于放上过天平的球,都是半确定球或是确定球
这是个显然成立的命题。
定义四:若所有球都是半确定球,那么n次可称出的球的最大个数我们用 h(n)表示。
引理二:h(n)=3^n。
证明:
用归纳法来证:
⑴对于n=1,先证3个球是可称的,再证4个是不可称的。
① 3个球可称,
若全为半确定重球,任意挑两个,若不平衡,重的就是坏重球;否则,剩下的那个就是坏重球;
全为半确定轻球同理;
若两个半确定重球,一个半确定轻球,则称两个两半确定重球,若不平衡,重的就是确定重球;否则,剩下的那个就是确定轻球;
若一个半确定重球,两个半确定轻球同理。
所以,3个求可称。
②四个球不可称
若是4个球,天平称一次,只能提供三条信息,由抽屉原理,必然有两个球的信息是相同的。故一次无法保证能判断出来。
故,n=1是h(n)=3^n是成立的。
⑵设n = k时命题成立,对于n=k+1
①先证t=3^(k+1)个球是可判断的:
设t中有a个半确定重球,b个半确定轻球,t =a + b ;
由对称性,不妨设a>b (a + b是奇数,所以不可能相等)
按如下方法分为三堆:
若a>=2*(3^k),则天平两边各放3^k个半确定重球。若不平衡,坏球在重的那堆中;平衡的话,坏球在剩下的那堆中。这时剩3^k个球,k次可判断出来,共k+1次,成立。
若a<2*(3^k), 则天平两边各放[a/2]个半确定重球,3^k-[a/2]个半确定轻球。若不平衡,坏球在重的那堆中的半确定重球或轻的那堆半确定轻球中;平衡的话,坏球在剩下的那堆中。这时剩3^k个球,k次可判断出来,共k+1次,成立。
a < b 同理可证。
所以3^(k+1)个球是可判断的。
②若3^(k+1)+1个球,称一次,只能提供三条信息,由抽屉原理,必然有3^k+1个球的信息是相同的,这3^k+1个球无法用k次称出。故k+1次无法保证能判断出来。
故,n=k+1也成立。
由归纳法,h(n)=3^n对一切自然数都成立。
再回到原题,来求f(n).
对于第一次处理后,若不平衡,天平两边的球都将成为半确定球。设两边球个数各为a个,另外一堆个数为b个。易知,a与b相互独立。为使得f(n)=2a+b最大,即要分别求出a , b的最大值。
由引理二,这2a个半确定球要在n-1次判断出,当且仅当
2a <= h (n-1)=3^(n-1).
但等号无法取到,因为3^(n-1)为奇数,所以2a<=3(n-1)-1,
max(a)=(3^(n-1)-1)/2
f(n)=(3^(n-1)-1)+max(b)
定义四、给一个确定好球,n次能称的最多非确定球的个数用g(n)表示。
引理三:g(n)=f(n)+1
若有任意确定好球的话,g(n)比f(n)可提高效率的地方就在于第一次称的时候可以两边放的非确定球的个数不一样多。一边放c个不确定球,一边放a个不确定球和c-a个确定好
球,剩下一堆为b个。平衡的话,b个球的处理同f(n),所以此时的max(b)显然等于f(n)的max(b)。若不平衡的话,就有a + c个不确定球。
a + c <= 3 ^ ( n – 1 ) (等号可取)
令c=a+1=(3^(n-1)+1)/2,则此时只需要一个确定好球,
g(n)=max(a + c)+max(b)=3^(n-1)+max(b)=f(n)+1
再来研究max(b).若不平衡,则b个球全为确定好球,否则,全为非确定球。但天平上的球
全为确定好球。这时的b就恰好同我们刚刚讨论的g(n). 即有
max(b)=g(n-1)=f(n-1)+1.
故有f(n)=3^(n-1)-1+f(n-1)+1 =f(n-1)+3^(n-1)
这是一个递推公式。
我们又易知,f(2)=3 ,所以易解得
f (n)=(3^n-3) / 2
故,称n次,最多可以在(3^n-3) / 2个球中找出坏球来。(坏球只有一个)
当n=3时,即第一题,f(3)=12. 3次能称得的最大数目将是12个。
--------------------------------------------------------------------------
12个球称3次和13个球称3次的方法的树型结构表示:
这样大家也许能看得更清楚一点。
V表示上一排重于下一排的,
A表示下一排重于上一排的。
最后0表示这种情况不存在。
12:
¦ 1 ¦ V 1,H
¦ V ¦ vs-- ¦ = 6,L
¦ ¦ 2 ¦ A 2,H
¦
¦ 1,2,5 ¦ ¦ 1 ¦ V 7,L
¦ V ¦ vs--- ¦ = ¦ vs-- ¦ = 8,L
¦ ¦ 3,4,6 ¦ ¦ 7 ¦ A 0
¦ ¦
¦ ¦ ¦ 3 ¦ V 3,H
¦ ¦ A ¦ vs-- ¦ = 5,L
¦ ¦ 4 ¦ A 4,H
¦
¦
¦ ¦ 9 ¦ V 9, H
¦ ¦ V ¦ vs-- ¦ = 11,L
¦ ¦ ¦ 10 ¦ A 10,H
¦ ¦
1,2,3,4 ¦ ¦ 9,10 ¦ ¦ 1 ¦ V 12,L
vs----- ¦ = ¦ vs--- ¦ = ¦ vs-- ¦ = 0
5,6,7,8 ¦ ¦ 1,11 ¦ ¦ 12 ¦ A 12,H
¦ ¦
¦ ¦ ¦ 9 ¦ V 10,L
¦ ¦ A ¦ vs-- ¦ = 11,H
¦ ¦ 10 ¦ A 9, L
¦
¦ A 类似V
13:
¦ 1 ¦ V 1,H
¦ V ¦ vs-- ¦ = 6,L
¦ ¦ 2 ¦ A 2,H
¦
¦ 1,2,5 ¦ ¦ 1 ¦ V 7,L
¦ V ¦ vs--- ¦ = ¦ vs-- ¦ = 8,L
¦ ¦ 3,4,6 ¦ ¦ 7 ¦ A 0
¦ ¦
¦ ¦ ¦ 3 ¦ V 3,H
¦ ¦ A ¦ vs-- ¦ = 5,L
¦ ¦ 4 ¦ A 4,H
¦
¦
¦ ¦ 9 ¦ V 9, H
¦ ¦ V ¦ vs-- ¦ = 11,L
¦ ¦ ¦ 10 ¦ A 10,H
¦ ¦
1,2,3,4 ¦ ¦ 9,10 ¦ ¦ 1 ¦ V 12,L
vs----- ¦ = ¦ vs--- ¦ = ¦ vs-- ¦ = 13
5,6,7,8 ¦ ¦ 1,11 ¦ ¦ 12 ¦ A 12,H
¦ ¦
¦ ¦ ¦ 9 ¦ V 10,L
¦ ¦ A ¦ vs-- ¦ = 11,H
¦ ¦ 10 ¦ A 9, L
¦
¦ A 类似V