一家药店收到运来的某种药品十瓶。每瓶装药丸1000粒。药剂师怀特先生刚把药瓶送上架子,一封电报接踵而来。怀特先生把电报念给药店经理布莱克小姐听。
怀特先生:“特急!所有药瓶须检查后方能出售。由于失误,其中有一瓶药丸每粒超重10毫克。请即退回分量有误的那瓶药。怀特先生很气恼。
怀特先生:“倒霉极了,我只好从每瓶中取出一粒来秤一下。真是胡闹。
怀特先生刚要动手,布莱克小姐拦住了他。布莱克小姐:“等一下,没必要秤十次,只需秤一次就够了。这怎么可能呢?
布莱克小姐的妙主意是从第一瓶中取出1粒,从第二瓶中取出2粒,第三瓶中取出3粒,以此类推,直至从第十瓶中取出10粒。把这55粒药丸放在秤上,记下总重量。如果重5510毫克,也就是超过规格10毫克,她当即明白其中只有一粒是超重的,并且是从第一瓶中取出的。
如果总重量超过规格20毫克,则其中有2粒超重,并且是从第二瓶中取出的,以此类推进行判断。所以布莱克小姐只要秤一次,不是吗?
六个月后,药店又收到此种药品十瓶。一封加急电报又接踵而至,指出发生了一个更糟糕的错误。
这一次,对超重药丸的瓶数无可奉告。怀特先生气恼极了。怀特先生:“布莱克小姐,怎么办?我们上次的方法不中用了。布莱克小姐没有立即回答,她在思索这个问题。
布莱克小姐:“不错。但如果把那个方法改变一下,我们仍然只需秤一次就能把分量有误的药品识别出来。这回布莱克小姐又有什么好主意?
在第一个秤药丸问题中,我们知道只有一瓶药丸超重。从每瓶中取出不同数目的药丸(最简单的方式就是采用计数序列),我们就可使一组数字和一组药瓶成为一一对应的关系。
为了解决第二个问题,我们必须用一个数字序列把每瓶药单独标上某个数字,且此序列中的每一个子集必须有一个单独的和。有没有这样的序列?有的,最简单的就是下列二重序列:1,2,4,8,16,。。。这些数字是2的连续次幂,这一序列为二进制记数法奠定了基础。
首页上一页12下一页末页共2页