逍遥学能 2014-02-22 09:26
一家药店收到运来的某种药品十瓶。每瓶装药丸1000粒。药剂师怀特先生刚把药瓶送上架子,一封电报接踵而来。怀特先生把电报念给药店经理布莱克小姐听。
怀特先生:“特急!所有药瓶须检查后方能出售。由于失误,其中有一瓶药丸每粒超重10毫克。请即退回分量有误的那瓶药。怀特先生很气恼。
怀特先生:“倒霉极了,我只好从每瓶中取出一粒来秤一下。真是胡闹。
怀特先生刚要动手,布莱克小姐拦住了他。布莱克小姐:“等一下,没必要秤十次,只需秤一次就够了。这怎么可能呢?
布莱克小姐的妙主意是从第一瓶中取出1粒,从第二瓶中取出2粒,第三瓶中取出3粒,以此类推,直至从第十瓶中取出10粒。把这55粒药丸放在秤上,记下总重量。如果重5510毫克,也就是超过规格10毫克,她当即明白其中只有一粒是超重的,并且是从第一瓶中取出的。
如果总重量超过规格20毫克,则其中有2粒超重,并且是从第二瓶中取出的,以此类推进行判断。所以布莱克小姐只要秤一次,不是吗?
六个月后,药店又收到此种药品十瓶。一封加急电报又接踵而至,指出发生了一个更糟糕的错误。
这一次,对超重药丸的瓶数无可奉告。怀特先生气恼极了。怀特先生:“布莱克小姐,怎么办?我们上次的方法不中用了。布莱克小姐没有立即回答,她在思索这个问题。
布莱克小姐:“不错。但如果把那个方法改变一下,我们仍然只需秤一次就能把分量有误的药品识别出来。这回布莱克小姐又有什么好主意?
在第一个秤药丸问题中,我们知道只有一瓶药丸超重。从每瓶中取出不同数目的药丸(最简单的方式就是采用计数序列),我们就可使一组数字和一组药瓶成为一一对应的关系。
为了解决第二个问题,我们必须用一个数字序列把每瓶药单独标上某个数字,且此序列中的每一个子集必须有一个单独的和。有没有这样的序列?有的,最简单的就是下列二重序列:1,2,4,8,16,。。。这些数字是2的连续次幂,这一序列为二进制记数法奠定了基础。
在这个问题中,解法是把药瓶排成一行,从第一瓶中取出1粒,从第二瓶中取出2粒,从第三瓶中取出4粒,以此类推。取出的药丸放在秤上秤一下。假设总重量超重270毫克,由于每粒分量有误的药丸超重10毫克,所以我们把270除以10,得到27,即为超重药丸的粒数。把27化成二进制数:11011。在11011中自右至左,第一,二,四,五位上的“1”表示其权值分别为1,2,8,16。因此分量有误的药瓶是第一,二,四,五瓶。
在由2的幂组成的集合中,每个正整数是单一的不同组合中的元素之和。鉴于这一事实,二进制记数法极为有用。在计算机科学和大量应用数学领域中,二进制记数法是必不可少的。在趣味数学方面,同样也有难以计数的应用。
这里有一个简单的扑克魔术,可叫你的朋友莫名其妙。这个戏法也许看上去与药瓶问题毫无关系,但他们的依据是相同的,都是二进制原理。
请别人把一副牌洗过,然后放进你的口袋,再请人说出一个1至15以内的数字。然后你把手插进你的口袋里,一伸手就取出一组牌,其数值相加正好等于他所说的数字。
此秘密简单的很。在耍魔术之前,预先取出A,2,4,8各一张放入口袋。这副牌缺少区区四张,不大可能为人察觉。洗过的牌放入口袋后,暗中将其排置于原先已经放在口袋中的四张牌的后面。请别人说出一个数字,你用心算将此数表示成2的幂的和。如果是10,那你就应想到:8+2=10,随即伸手入袋,取出2和8的牌示众。
卜算卡片的依据也是二进制原理,准备六张卡片,分别记为A,B,C,D,E,F。然后将一些数字填写在卡片上,确定每张卡片上的数字集合的规则是这样的:在一个数的二进制表示中,若右起第一位是“1”,则此数字就在卡片A上。该卡片上的数字集合自1起始,全部数字就是1至63范围内所有的奇数;卡片B则包括1至63范围内的二进制记数法中右起第二位为“1”的全部数字;卡片C包括1至63范围内的二进制记数法中右起第三位为“1”的全部数字;卡片D,E,F以此类推。注意:63这个数字的二进制记数法是“111111” 高考,每一位都是“1”,因此每张卡片上都有这个数字。
这六张卡片可以用来确定1至63范围内的任意一个数字。请一位观众想好此范围内的一个数字(例如某个人的年龄),然后请他把所有上面有此数字的卡片都交给你。你随即说出他心中所想的那个数字。秘诀就是把每张卡片上2的幂的第一个数字相加。例如,如果把卡片C和F交给你,你只要将上面第一个数字4和32相加,便知道别人心中所想的数字是36。
有时,魔术师为了使得这个戏法显得更加玄妙,故意把每张卡片涂上各种不同的颜色。他只需记住每种颜色所代表的2的幂。例如,红卡片代表1,橙卡片代表2,黄卡片代表4,绿卡片代表8,兰卡片代表16,紫卡片代表32(可依据彩虹的诸色顺序)于是,魔术师站在大房间的一头,请人想好一个数字,并且把上面有此数字的卡片置于身旁,他即可根据那人身旁的卡片的颜色随口说出别人心中所想的数字。