论文部分内容阅读
一家药店收到运来的某种药品十瓶,每瓶装药丸1000粒,药剂师怀特先生刚把药瓶送上架子,一封电报到了,怀特先生把电报念给药店经理布莱克小姐听。
怀特先生:“特急!所有药瓶须检查后方能出售,由于失误,其中有一瓶药丸每粒超重10毫克,请速退回分量有误的那瓶药,”怀特先生很气恼。
怀特先生:“倒霉极了,我只好从每瓶中取出一粒来称一下,真是胡闹。”
怀特先生刚要动手,布莱克小姐拦住了他,布莱克小姐:“等一下,没必要秤十次,只需秤一次就够了。”
布莱克小姐的妙主意是从第一瓶中取出1粒,从第二瓶中取出2粒,第三瓶中取出3粒……以此类推,直至从第十瓶中取出10粒,把这55粒药丸放在秤上,记下总重量,如果重5 510毫克。也就是超过规格10毫克,她就会明白其中只有一粒是超重的,并且是从第一瓶中取出的,
如果总重量超过规格20毫克。则其中有2粒超重。并且是从第二瓶中取出的……以此类推进行判断,所以布莱克小姐只要秤一次。
六个月后,药店又收到此种药品十瓶,一封加急电报又到了。指出发生了一个更糟糕的错误。
这一次,对超重药丸的瓶数无可奉告,怀特先生气恼极了,怀特先生:“布莱克小姐,怎么办?我们上次的方法不中用了,”布莱克小姐没有立即回答,她在思索这个问题。
布莱克小姐:“如果把那个方法改变一下,我们仍然只需秤一次就能把分量有误的药品识别出来,”这回布莱克小姐又有什么好主意?
在第一个秤药丸问题中,我们知道只有一瓶药丸超重,从每瓶中取出不同数目的药丸(最简单的方式就是采用计数序列),我们就可使一组数字和一组药瓶成为一一对应的关系。
为了解决第二个问题,我们必须用一个数字序列把每瓶药单独标上某个数字,且此序列中的每一个子集必须有一个单独的和,有没有这样的序列?有的,最简单的就是下列二重序列:1,2,4,8,16,…
在这个问题中,解法是把药瓶排成一行,从第一瓶中取出1粒,从第二瓶中取出2粒,从第三瓶中取出4粒……以此类推。取出的药丸放在秤上秤一下,假设总重量超重270毫克,由于每粒分量有误的药丸超重10毫克,所以我们把270除以10,得到27,即为超重药丸的粒数,把27化成二进制数:11011,在11011中自右至左,第一,二,四,五位上的“1”表示其权值分别为1,2,8,16,因此分量有误的药瓶是第一,二,四,五瓶,同学们领悟到布莱克想法的精髓了吗?
怀特先生:“特急!所有药瓶须检查后方能出售,由于失误,其中有一瓶药丸每粒超重10毫克,请速退回分量有误的那瓶药,”怀特先生很气恼。
怀特先生:“倒霉极了,我只好从每瓶中取出一粒来称一下,真是胡闹。”
怀特先生刚要动手,布莱克小姐拦住了他,布莱克小姐:“等一下,没必要秤十次,只需秤一次就够了。”
布莱克小姐的妙主意是从第一瓶中取出1粒,从第二瓶中取出2粒,第三瓶中取出3粒……以此类推,直至从第十瓶中取出10粒,把这55粒药丸放在秤上,记下总重量,如果重5 510毫克。也就是超过规格10毫克,她就会明白其中只有一粒是超重的,并且是从第一瓶中取出的,
如果总重量超过规格20毫克。则其中有2粒超重。并且是从第二瓶中取出的……以此类推进行判断,所以布莱克小姐只要秤一次。
六个月后,药店又收到此种药品十瓶,一封加急电报又到了。指出发生了一个更糟糕的错误。
这一次,对超重药丸的瓶数无可奉告,怀特先生气恼极了,怀特先生:“布莱克小姐,怎么办?我们上次的方法不中用了,”布莱克小姐没有立即回答,她在思索这个问题。
布莱克小姐:“如果把那个方法改变一下,我们仍然只需秤一次就能把分量有误的药品识别出来,”这回布莱克小姐又有什么好主意?
在第一个秤药丸问题中,我们知道只有一瓶药丸超重,从每瓶中取出不同数目的药丸(最简单的方式就是采用计数序列),我们就可使一组数字和一组药瓶成为一一对应的关系。
为了解决第二个问题,我们必须用一个数字序列把每瓶药单独标上某个数字,且此序列中的每一个子集必须有一个单独的和,有没有这样的序列?有的,最简单的就是下列二重序列:1,2,4,8,16,…
在这个问题中,解法是把药瓶排成一行,从第一瓶中取出1粒,从第二瓶中取出2粒,从第三瓶中取出4粒……以此类推。取出的药丸放在秤上秤一下,假设总重量超重270毫克,由于每粒分量有误的药丸超重10毫克,所以我们把270除以10,得到27,即为超重药丸的粒数,把27化成二进制数:11011,在11011中自右至左,第一,二,四,五位上的“1”表示其权值分别为1,2,8,16,因此分量有误的药瓶是第一,二,四,五瓶,同学们领悟到布莱克想法的精髓了吗?