思路:把1000瓶酒用2进制表示,每一个囚犯对应一位,因而1000需要用10位来表示,答案就是10.
第一步把十个人编号,比如说他们是ABCDEFGHIJ,A对应的是1,B对应的是2,C对应的是4,D对应的是8,E对应的是16,F对应的是32,G对应的是64,H对应的是128,I对应的是256,J对应的是512.
然后这些酒每瓶都编号,从1到1000;然后把编号分解成那十个数字代表的数字(这是一个特殊的数列,这些数字不重复相加,可以组成1-1023 的任何一个数字)比如说3就是1+2(A+B),769就是512+256+1(A+I+J).喂酒的时侯就把这瓶酒分给带有对应数字的a,3号酒就给A 和B喝,769号酒就给A和I和J喝.
第二天将死去的几个囚犯所代表的数字加起来,数字的总和代表毒酒的编号,就能找出哪一瓶是毒酒了