出异常,便试探着问道:“您好,您是想告诉我们您那里出现了什么特殊情况,是吗?”
罗伯塔教授喜出望外,赶忙再次敲击话筒。
维尔文警官猜想,这个区域有很多老年人单独在家,这很可能是独居的老人出现了什么特殊情况,说不出话来,也许是中风,甚至可
能是突发心脏病。只有尽快弄清楚对方的地址才能赶过去给予帮助。可是对方又说不出话来,怎么办呢?
突然,维尔文警官灵机一动,对他说:“我需要知道您的电话号码以便查到您的地址,现在我向您问问题,您敲击一下话筒,表示‘是’;敲击两下,表示‘不是’,好吗?”
对方迟疑了一下,不过还是敲击了一下话筒,表示同意。
这是一座有着几百万人口的城市,电话号码有七位数。维尔文警官想要确定对方的电话号码,需要问多少次啊。可是,维尔文警官确信自己最多只要问24次问题,就能知道对方的电话号码。
维尔文警官的第一个问题是:“您的电话号码大于5000000吗?”
罗伯塔教授敲击了一下话筒,表示是的。
“您的电话号码大于7500000吗?”维尔文警官接着问道。
又传来一下敲击声。
★大显身手★
请继续提最多22个问题,确定出罗伯塔教授的电话号码。
罗伯塔教授的电话号码是7位数,那么这个数字一定在1000000与9999999之间。
维尔文警官知道罗伯塔教授只能用敲击话筒给出回应时,便想到最好的沟通方法就是只需要对方回答是或不是。
维尔文警官的办法
是:取1000000与9999999中间的数即5000000,然后问对方的电话号码是否大于5000000,这样就可以确定彼得先生的这个电话号码是在1000000与5000000之间,还是在5000000与9999999之间了。在得到回答后,不断重复上述步骤,如:您的电话号码是在7500000与9999999之间吗?您的电话号码是在8750000与9999999之间吗?如此每次都取上一个范围的中间数来提问,问24次就可以得到要找的电话号码,因为2的24次方=16777216,它大于七位数中最大的一个数9999999。
……
第18次提问:这个数大于9360750吗?不是
第19次提问:这个数大于9360725吗?不是
第20次提问:这个数大于9360712吗?不是第21次提问:这个数大于9360706吗?不是
第22次提问:这个数大于9360703吗?不是
第23次提问:这个数大于9360702吗?不是
第24次提问:这个数大于9360701吗?是的
由此就可以查得电话号码是9360702。萨利先生一共只问了24个问题。