12个小球 梅氏砝码问题

来源:互联网 发布:base64解码 js 编辑:程序博客网 时间:2024/05/22 15:32


1. 12个小球,其中有一个是坏球。有一架天平。需要你用最少的称次数来确定哪个小球是坏的并且它到底是轻还是重。


来源:http://blog.csdn.net/pongba/article/details/2544933

这个问题是一道流传已久的智力题。网络上也有很多讲解,还有泛化到N个球的情况下的严格证明。也有零星的一些地方提到从信息论的角度来看待最优解法。本来我一直认为这道题目除了试错之外没有其它高妙的思路了,只能一个个方法试,并尽量从结果中寻找信息,然后看看哪种方案最少。

然而,实际上它的确有其它的思路,一个更本质的思路,而且根本用不着信息论这么拗口的知识。

我们先回顾一下猜数字游戏。为了保证任何情况下以最少次数猜中,我们的策略是每次都排除恰好一半的可能性。类比到称球问题上:坏球可能是12个球中的任意一个,这就是12种可能性;而其中每种可能性下坏球可能轻也可能重。于是“坏球是哪个球,是轻是重”这个问题的答案就有12×2=24种可能性。现在我们用天平来称球,就等同于对这24种可能性发问,由于天平的输出结果有三种“平衡、左倾、右倾”,这就相当于我们的问题有三个答案,即可以将所有的可能性切成三份,根据猜数字游戏的启发,我们应当尽量让这三个分支概率均等,即平均切分所有的可能性为三等份。如此一来的话一次称量就可以将答案的可能性缩减为原来的1/3,三次就能缩减为1/27。而总共才有24种可能性,所以理论上是完全可以3次称出来的。

如何称的指导原则有了,构造一个称的策略就不是什么太困难的事情了。首先不妨解释一下为什么最直观的称法不是最优的——6、6称:在6、6称的时候,天平平衡的可能性是0。刚才说了,最优策略应该使得天平三种状态的概率均等,这样才能三等分答案的所有可能性。

为了更清楚的看待这个问题,我们不妨假设有6个球,来考虑一下3、3称和2、2称的区别:

在未称之前,一共有12种可能性:1轻、1重、2轻、2重、...、6轻、6重。现在将1、2、3号放在左边,4、5、6放在右边3、3称了之后,不失一般性假设天平左倾,那么小球的可能性就变成了原来的一半(6种):1重、2重、3重、4轻、5轻、6轻。即这种称法能排除一半可能性。

现在再来看2、2称法,即1、2放左边,3、4放右边,剩下的5、6不称,放一边。假设结果是天平平衡,那么可能性剩下——4种:5重、5轻、6重、6轻。假设天平左倾,可能性也剩下4种:1重、2重、3轻、4轻。右倾和左倾的情况类似。总之,这种称法,不管天平结果如何,情况都被我们缩小到了原来的三分之一!我们充分利用了“天平的结果状态可能有三种”这个条件来三等分所有可能性,而不是二等分。

说到这里,剩下的事情就实在很简单了:第二步称法,只要记着这样一个指导思想——你选择的称法必须使得当天平平衡的时候答案剩下的可能性和天平左倾(右倾)的时候答案剩下的可能性一样多。实际上,这等同于你得选择一种称法,使得天平输出三种结果的概率是均等的,因为天平输出某个结果的概率就等同于所有支持这个结果(左倾、右倾、平衡)的答案可能性的和,并且答案的每个可能性都是等概率的。




2. 梅氏砝码问题
   用四个砝码称出1—40克所有重量,四个砝码分别为多少?


这实际上是找出4个自然数,将它们(全部,或一部分)进行加减运算后能够得出1~40的问题。
我们只考虑重物和砝码均为整数,也就是说,重物和砝码的重量均为整数磅。
假如有一系列砝码A,B,C,…,把它们适当地分放在两个盘上,就能称出从1 到n
的所有整数磅的重物。如果有一块新砝码P,它的重量p 超过原有砝码的重量总和n,超过
量为原有砝码重量的总和加1:
p – n = n + 1,
或者
p = 2n + 1,
那么,把砝码P 加入砝码组A、B、C、…之后就能称出从1 至p + n = 3n + 1 的所有整数磅
的重物。

x^0+x^1+x^2+x^3=40, 解得,x=3 -->  x^0=1, x^1=3..... (好神奇!)




3. 你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你的工人付费?


方法一:小蒲(现在微创工作,去年遭遇这道试题):这道试题相对其它一些微创考题还是简单的,可仍然把我弄得头大。当时我是这样做这道题的。两次弄断就应分成三份,我把金条分成1/7、2/7和4/7三份。这样,第1天我就可以给他1/7;第2天我给他2/7,让他找回我1/7;第3天我就再给他1/7,加上原先的2/7就是3/7;第4天我给他那块4/7,让他找回那两块1/7和2/7的金条;第5天,再给他1/7;第6天和第2天一样;第7天给他找回的那个1/7。

方法二: 以二段为一折,中间斩断,再将剩下的3个两端放在一起斩断,得到7个1段



4. 有36匹马,六个跑道。没有记时器等设备,用最少的比赛次数算出跑的最快的前3匹马



36匹马分6个组,分别为A、B、C、D、E、F组。
第一轮,每个组各跑一次,取每组前三名,标识为A1、A2、A3,B1、B2、B3,以此类推。
第二轮,每个组的第一名(A1——F1)拉出来跑一次,假设名次是:A1第一名,B1第二名,C1第三名。
则:1.后三名及其所在组的其余组员均被淘汰(小组头名都没能进前三,当然是全部淘汰啦)
2.两战全胜的A1已经提前夺冠了。
3.由于A1已经占去了一个名额,只剩两个名额了,则C3可以淘汰了。而且由于C1的最好成绩也只能是第三名了,所以C2也可以淘汰了。
第三轮,A2、A3、B1、B2、B3、C1六匹马跑,取前两名。
其中第一轮跑6次,第二轮第三轮都各只跑1次,一共8次。




5. 完成某项工程,甲单独工作需要18小时,乙需要24小时,丙需要30小时。现按甲、乙、丙的顺序轮班工作,每人工作1小时换班。当工程完工时,乙总共干了多少小时?
A.8小时 B.7小时44分 C.7小时 D.6小时48分


选B
方法一: 三人合做  1/18+1/24+1/30=47/360
先每人干7小时  1-7*47/360=31/360
按顺序先甲31/360-20/360=11/360
11/360/1/24+7=B
方法二:设工程总量为360 (公倍数),计算方便点。

设总量 360
甲效率 20  乙15   丙12
360=(20+15+12)*7+20+11

选B

0 0