酒是古埃及人生活之中的必需品。修建吉萨金字塔的工匠们每天会饮用三四次大麦酿成的啤酒,用这种口感清淡、营养丰富的饮料为自己补充能量;相比之下葡萄酒则要难得得多,只有上流社会的人们才有机会享受这种珍贵饮品。
为庆贺自己的寿诞,法老打算大宴宾客。他邀请了1000位贵客前来参加晚宴,并承诺要让每位赴宴的贵客喝到一瓶最好的葡萄酒。为了兑现自己的诺言,法老一早便花费重金买下了1001瓶名贵美酒,至于那多出来的一瓶,自然是留给自己享用的。
谁知,在晚宴前一天的晚上,侍卫在法老宫的酒窖中捉到了一个形迹可疑的人。那人供认自己是由法老的政敌派来在酒中投毒的,那是一种毒性极强的慢性毒药,在一瓶酒中加入少许毒药后,哪怕饮酒人只喝下这瓶酒中的一滴,也会在20小时后毒发身亡,但毒发前则不会表现出任何症状。只是没想到法老宫戒备森严,自己费尽心思潜入酒窖,结果只在一瓶酒中投了毒,便被侍卫捉了。
侍卫把那人身上带着的毒药瓶呈给法老看,果然,瓶子几乎是满的。谋害法老必获死罪,看来这人自知将死其言也善,被捕后说的都是实话。
法老非常看重自己许下的诺言,不想失信于人。还好,自己不喝倒也没关系,去掉1瓶毒酒还有1000瓶美酒,足够招待1000位客人。问题是,就连投毒者也记不清自己下了毒的酒是哪一瓶了,该如何从这1001瓶酒中把1瓶毒酒找出来呢?
法老左思右想,决定用死囚来试毒。没想到的是,法老宫附近的监狱内只有9名死囚,加上那名投毒者也不过10个人。要从其他监狱押送死囚来,光在路上就要花费4个多小时,毒药被人服下20个小时之后才会发作,而距离明晚的晚宴只有24小时,时间上来不及。
法老手下的奴隶远不止千人之数。法老固然可以用奴隶来试毒,然而,这就代表着要牺牲无辜之人的性命,比如,法老可以命令10名死囚和991名奴隶每人尝一瓶美酒,可这就意味着奴隶喝到毒酒的概率大于99%,也就是说极有可能使无辜者因此丧命。法老又实在于心不忍。
请问,如果你是法老,该怎样在尽可能不牺牲无辜者的前提下赶在晚宴前找出1001瓶酒中的那瓶毒酒呢?
答案:
1001这个数字看起来有些庞大,让我们先从小一些的数字开始思考吧。
(1)要找出2瓶酒中的1瓶毒酒,需要多少人以身试毒呢?
当然,1个人就够了。给这个人尝其中一瓶酒,20个小时后,如果这个人不幸毒发身亡,那么他尝过的就是毒酒;反之,没尝过的那瓶就是毒酒。
(2)要找出4瓶酒中的1瓶毒酒,需要多少人以身试毒呢?
3个人吗?不,2个人就够了。这里分别用A和B代指这2个人:给A尝第一瓶酒和第二瓶酒,给B尝第一瓶酒和第三瓶酒,20个小时后,如果AB皆死,那么毒酒是第一瓶酒;如果A死B生,那么毒酒是第二瓶酒;如果A生B死,那么毒酒是第三瓶酒;如果AB皆生,那么毒酒是第四瓶酒。
(3)用3个人以身试毒,能够找出多少瓶酒中的1瓶毒酒呢?
现在让我们来进一步简化思路。这里我们把每个以身试毒的人看作一个单位,把试毒者的“生”和“死”看作两种不同的状态,那么问题就变成了:3个具有2种不同状态的单位排列组合,共可表现出多少种不同的可能性呢?
看到这里,相信有不少读者都会想起八卦。顾名思义,以阳爻和阴爻排列组合,每三爻合成一卦,可以得到8种不同的卦象。若有3个人以身试毒,同样可以找出8瓶酒中的1瓶毒酒。限于篇幅,这里就不再一一列举所有的可能性了。
那么,八卦又给了我们什么提示呢?如果再进一步简化,用“1”代替阳爻、用“0”代替阴爻的话——没错,就是二进制。
(4)1个具有2种不同状态的单位排列组合,所能够表现出的可能性数量为2∧1=2;
2个具有2种不同状态的单位排列组合,所能够表现出的可能性数量为2∧2=4;
3个具有2种不同状态的单位排列组合,所能够表现出的可能性数量为2∧3=8;
……
现在我们需要表现1001种可能性,而2∧9=512<1001<2∧10=1024,所以用10个人来以身试毒就够了。
说得具体一些,我们可以将10个人依次编号为1~10,将1001瓶酒依次编号为1~1001,然后将每瓶酒的编号以二进制表示,例如1=0000000001,2=0000000010,3=0000000011,…,10=0000001010,…,100=0001100100,…,1000=1111101000,1001=1111101001。
接下来,我们使1~10号死囚分别对应十进制数的第1位至第10位,如某名死囚所对应的位数在某瓶酒的二进制编号中以1表示,那么此死囚就需要喝下该编号的酒;反之,如以0表示,则不必喝酒。例如需要喝下1号酒的是10号囚犯,需要喝下1001号酒的是1、2、3、4、5、7、10号囚犯。
20个小时后,将毒发身亡的囚犯编号记为1、生存的囚犯编号记为0,再将所得到的二进制数转化为十进制数,该十进制数即为毒酒编号。例如1、2、4、9、10号囚犯死亡,得到1101000011,转化为835,则835号酒为毒酒。