称砝码问题的一般解

设有N=(3^m-1)/2 (即3的m次方减1再除以2)个零件,其中m为至少2的正整数。这些零件中有一个是次品,重量和其他零件不同。证明:可以用一个没有砝码的天平最多称m次,就能找出这个次品。
(比如,m=4时,有40个零件,则可以称4次找出次品。)
注意,次品零件的重量不知道是轻还是重。所以“只要 3^(m-1)<n<=3^m就需要m次”是错误的。
提示:可以用构造法,以初等数学方式证明。

真正的答案在这里,让小弟深入浅出的从头讲起,虽然有点长,但保证各位看完之後彻底理解.

 命题A:有3^m个物件,其中1个是次品且知道次品比较轻,这样可以透过m次测量找出次品.
 证明:每次测量都有三种结果,所以测量之後都可以将范围缩小成为原先的1/3.

 命题B:有3^m个物件,其中1个是次品.此外,对於每一个物件,我们知道"如果它是次品的话,那麼次品是较轻或是较重",这样我们仍然可以透过m次测量找出次品.
 举例:现有3^m个物件,其中1个是次品.假设我们知道,如果1号是次品,那麼次品比较轻;如果2号是次品,那麼次品比较重;如果3号是次品,那麼次品比较重...如果3^m号是次品,那麼次品比较轻--这样的话,我们仍可以透过m次测量找出次品.

 证明:其实命题B与命题A同构.命题A比较无脑,每次测量之後,我们都可以很简单地确定次品是在"天平左边"、"天平右边"或是"秤外".相形之下命题B比较复杂,每次测量之後,我们仍然可以将范围缩小成为1/3,这不过这1/3未必像命题A那样通通在秤的某一边,而是"秤左边的第2号或第4号比较轻"或者"秤右边的第5号比较重"这类的答案.但无论如何,每次测量之後我们还是可以把范围缩小成为1/3,所以命题B与命题A所需要的测量次数是相同的.

 命题C:有3^m个物件,其中1个是次品,但不知是轻是重,同时额外还有无数个标准品可供你使用.假设先前有人将这3^m个物件平均分放到天平的两侧(当然要添加一个正品才能凑成偶数),并且测量出结果了(肯定不是平衡的).此後,你只要再秤一次,就可以把问题改写成为"3^(m-1)个物件的命题B".换句话说,你只要再秤一次,不但可以把范围缩小成为1/3,还可以知道"如果某一个物件是次品的话,那麼它将是轻还是重".

 证明:在第二次测量之前,将所有3^m个物件分为三类,每类3^(m-1)个:
    第一类:保持不动:原先在天平左边的就留在左边,原先在天平右边的就留在右边.
    第二类:左右换位:原先在天平左边的就换到右边,原先在天平右边的就换到左边.
    第三类:彻底消失:通通拿下来,放到旁边.
    如果左右物件数量不同的话,用额外的标准品补上.
 这样的话,如果第二秤与第一秤结果相同,那麼次品就在"保持不动"的那一组;如果前两秤结果相反,那麼次品就在"左右换位"的那一组;如果第二秤左右平衡了,那麼问题就在"彻底消失"的那一组;所以范围可以缩小成为1/3.
 又,依据前两秤的结果,我们不难得知如果某一个物品是次品的话,那麼它是较轻还是较重.这样就完全等价於命题B了.
 换句话说,命题C告诉我们:"只需要秤两次,就可以将原问题的范围缩小成为1/3,并简化成为命题B".

好,现在来解本题.很明显的,在第一秤时,我们一定是将p个物件分放到天平左右,并留下q个物件在外面;其中p为偶数,q为非负整数.

令f(n)代表"在秤n次的情况之下,所能够处理的物件数量上限",那麼我们可以列出下式:
 --------------------------------------
 f(n) = 如果第一秤的p个物件左右不平衡,我们可以使用命题C解决这p个物件
     +
   如果第一秤的p个物件平衡了,则在少了一秤的情况下,我们必须能够解决q个物件
 --------------------------------------

先看第一条,我们知道使用命题C要先秤2次,然后才能将3^m个物件缩小成为3^(m-1)个物件的命题B.又命题B告诉我们3^(m-1)个物件需要再秤m-1次才能得到最终答案,因此从头到尾一共要秤m+1次才能解决3^m个物件,故上面公式可以改写为:
 --------------------------------------
 f(m+1) = 第一秤天平左右两端一共有 3^m 个物件,若不平衡必能用命题C解决
       +
    如果第一秤平衡了,则在少了一秤的情况下,我们必须能够解决剩下的q个物件
 --------------------------------------

其实上式是错的,因为 3^m 是个奇数,我们没有办法将奇数平均分放到天平的左右.别忘了在命题C里面,我们假设"额外有无数个标准品"可供我们利用,但这个条件在本题不适用,所以上式必须改写为:
 --------------------------------------
 f(m+1) = 第一秤天平左右两端一共有 (3^m)-1 个物件,若不平衡必能用命题C解决
       +
    如果第一秤平衡了,则在少了一秤的情况下,我们必须能够解决剩下的q个物件
 --------------------------------------

好,接下来再看第二条:"在少了一秤的情况下,必须解决剩下的q个物件",请问q是多少?不就是 f(m) 吗?想想看前面的定义, f(m) 与 f(m+1) 相比,正是少用一秤所能解决的物件数量.所以上面公式可以改写为:
 --------------------------------------
 f(m+1) = 第一秤天平左右两端一共有 (3^m)-1 个物件,若不平衡必能用命题C解决
       +
    如果第一秤平衡了,则在少了一秤的情况下,我们可以解决 f(m) 个物件
 --------------------------------------

事实上这公式还有错.当初我们设计 (3^m)-1 这个数字的时候,由於 3^m 是奇数,在没有"额外的标准品"可以利用的情况之下,我们无法将 3^m 个物件分放到天平的两端,因此我们才忍痛减1.
然而反观在第一秤平衡之後,当我们处理剩下的 q 个物件的时候,我们手边可是有标准品能够使用的!这与 f(m) 的情况不完全相同.在处理剩下的 q 个物件时,我们可以完全照抄命题C,不必再刻意地减 1 .因此 q = f(m)+1,而上述公式也可以改写为最终型态:

f(m+1)
= (3^m)-1 + f(m)+1
= 3^m + f(m)

使用穷举实验,我们知道秤2次时最多只能处理4个物件,即 f(2)=4,故:
f(3) = 3^2 + f(2) = 9+4 = 13
f(4) = 3^3 + f(3) = 27+13 = 40
f(5) = 3^4 + f(4) = 81+40 = 121
均合乎预期.

接下来我们开始化简:
f(2) = 4
 f(3) = 3^2 + f(2)
 f(4) = 3^3 + f(3)
 f(5) = 3^4 + f(4)
 f(6) = 3^5 + f(5)
.....
+ f(n+1) = 3^n + f(n)
--------------------------
f(n+1) = (3^2+...+3^n) +4
    = 3^2*(3^(n-1) - 1)/2 + 4
= (3^(n+1) - 9)/2 + 8/2
= (3^(n+1) - 1)/2

故 f(n) = (3^n -1)/2
证毕.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-04
若称量过程中,已知某个球不可能超重,则将它涂成白色。反之若不可能偏轻,则涂成黑色。

首先证明一个引理:

1. 若每个球的颜色都已知,则最多m次称量,可以挑出3^m个球中唯一的坏球。

引理1的证明:

m=1时,不妨设至少有2个球是白色。将这两个球称一次,若相等,则坏球是第三个。
否则,坏球是轻的那个(因为已知这两个球中没有超重的)。

m>1时,将全部球分成{A,B,C} 3份,每份各n=3^{m-1}个球,且使得A, B所包含的白球数目相等,
都为x个。则A, B所含黑球数也相等,都为y=n-x个。

称量A, B,若A=B,则坏球在C中,由归纳假设,得证。
否则,不妨设A<B,则A中所有球都不可能超重。
而已知A中的y个黑球都不可能偏轻,所以这y个黑球既不超重,也不偏轻,都是好球。
同样的B中的x个白球也都是好球。
将这y+x个好球拿走,坏球只能在剩下的x+y=n=3^{m-1}个球中,由归纳假设,得证。

引理1证毕。

令N=N(m)=(3^m-1)/2, m>1。有:

2. 若额外有 3^{m-1} 个好球,则最多称 m 次,可找出 N+1 个(颜色未知)球中唯一的坏球。
m=2时, N+1=5。读者可自己验证设计方案,验证引理2的结论(需要稍微动动脑子)。

m>2时,N=3k+1,其中k=N(m-1)=(3^{m-1}-1)/2。

令x=3^{m-1}, y=k+1, 则x+y=N+1。将N+1个球分成A, B两组,
|A|=x, |B|=y,取x个好球C,比较A, C。
若A=C,坏球在B中,由归纳假设,得证。
否则,坏球在A中,不妨设A<C,A中所有球全涂白,由引理1,得证。
引理2证毕。

3. 最多称 m 次,可找出 N 个球中唯一的坏球。

因N=3k+1,可将这N个球分作{A,B,C,1}四份,
|A|=|B|=|C|=k。
称量 A, B。若A=B,则坏球在剩下的k+1个球C+1中,且A, B的所有2k个球都是好球,
由引理2,得证。
否则,不妨设A<B,则A中所有球都涂白,B中所有球都涂黑。
将A,B的球合在一起,再添一个好球,不妨将这好球涂白。一共有
2k+1=3^{m-1}个球,由引理1,得证。

完毕。追问

最后一步,3^{m-1}个球,不能用引理1,因为不知道劣质球是轻还是重。请重新考虑这个情况。

追答

引理1不需要知道劣球是轻是重。

追问

实在抱歉,读您的证明的时候疏忽了。你的解答完全正确!

本回答被提问者采纳
第2个回答  2011-08-01
找次品的问题是有规律的。
一般都是分成a a b三份。b可以等于a。b也可可能等于a+1或者a-1,根据总数决定。
把两个a放在天平两端,如果天平平衡,次品就在b里头,如果天平不平衡,则根据次品和正品的差别找出次品在哪一份。
找到之后继续往下分三份。
这样一次就能排除掉三分之二,是最快的。

称m次最多可以从n=3^m个产品中找出那一个次品,即每次称的产品都恰好分成三份,因为若是第三份少了,则m不变的情况下n变小,若是第三份多了,则需要多称一次,m需要加一

则称m-1次最多可以从3^(m-1)个产品中找出那一个次品
因此设称m次可以从n件产品中找出唯一的次品
则3^(m-1)<n≤3^m

(3^m-1)/2 -3^(m-1)
=3^m/2-3^(m-1)-1/2
=(3/2-1)3^(m-1)-1/2
=(1/2)3^(m-1)-1/2
=(1/2)[3^(m-1)-1]>0

3^m-(3^m-1)/2
=(1/2)3^m+1/2
=(1/2)(3^m+1)>0
因此3^(m-1)<(3^m-1)/2≤3^m
命题得证追问

“则根据次品和正品的差别找出次品在哪一份” - 差别并不知道。可以轻也可以重。

第3个回答  2011-08-07
学了信息论就可以轻松解决了.
假如用logx表示以2为底x的对数的话.
N个零件中告诉你哪个是次品的的信息量为logN bit
天平称一次的信息量有log3 bit
要获得足够的信息量, 假设需要k次, 那么
k * log3 >= logN
k >= ( log( 3^m -1 ) - 1 ) / log3
当m>1时
( log( 3^m -1 ) - 1 ) / log3
=m - q (其中0 < q < 1 )
由于结果必须是整数, 所以向上取整.
此时需要m次就能称出来.

证毕.
第4个回答  2011-08-04
证明:由题可得:∵是“最多”,而实际情况(如以2个为一组称量)最多不只m种
又∵N=(3^m-1)/2
∴可知题中“最多”的规则为:去掉某些零件分为3份再比较
又∵每称量1次时,无论是去掉1个或者2个零件
下一次称量时必又算入总数再重新剔除,然后分为3份
设每次称量后的一小份零件个数为n
当称到m-1次时,n=[3-3^(1-m)]/2
m≥2 ==> 1-m≤-1 ==> 0<3^(1-m)<1/3 ==> 8/3<3-3^(1-m)<3
==> 4/3<[3-3^(1-m)]/2<3/2
∵4/3,3/2>1
∴至此还剩2个零件没有称量,无法区分
∴得证,最多称m次