一个国王的酒窖里收藏了1000瓶上好的红酒,这是他为自己的六十大寿准备良久的礼物。第二天便是国王的六十大寿,国王却得知了一个不好的消息。根据可靠情报,有人在国王酒窖里
一个国王的酒窖里收藏了1000瓶上好的红酒,这是他为自己的六十大寿准备良久的礼物。第二天便是国王的六十大寿,国王却得知了一个不好的消息。根据可靠情报,有人在国王酒窖里,对其中一瓶红酒下了毒,但是下毒者已经畏罪自杀。根据下毒者身上所剩余的毒液检测,这种毒是慢性毒药,凡是沾到者要在20小时后才开始表现出异样并无药可治(哪怕只沾到一滴也是如此)。距离国王的大寿还有23小时的时间,国王可不想冒着千分之一的危险喝到那瓶有毒的红酒。怎么办呢?
国王的近身侍卫出了一个主意,可以用牢房里的死囚来检验毒酒。但是又一个问题出来了,最少需要多少个死囚才能检验出毒酒呢?
答案:最少10个人就足够了。把10个死囚编成1~10,10个号码。再把1000瓶酒用二进制编号分别编上序号,0000000000,0000000001,……1111111111,一共有1024种组法。每种组法对应一瓶红酒(足够1000瓶红酒)。酒的编号中第几位出现1,就把这瓶酒给第几个人。当1000瓶红酒都让死囚检测完毕后,最后观察死了哪几个编号的囚犯,就知道哪瓶酒有毒了。