题
1.诚实者问题
有5个人,其中4个是善变者,1个是诚实者,善变者的定义是:第一次你问他问题的时候,他可能说真话或者假话,第二次再问他的时候,原先说真话的说假话,原先说假话的说真话,第三次再次相反,以此类推.现在允许你问2个问题,2个问题可以问同一个人,也可以问不同的人,通过这两个问题要判断出哪个人是诚实者,该怎么问?
2.老鼠和毒药
有100个瓶子,瓶子里面乘着水,其中有一个瓶子里面的水是有毒的。老鼠喝了有毒的水,七天会死掉。现在给你七天的时间,至少需要几只老鼠可以检测出有毒的水是哪瓶?
答案
1.诚实者
问题一:你们这里有没有诚实人?
问题二:若问答没有,问:谁是诚实人?他回答的人就是诚实人.
若回答有,问:谁不是诚实人?他若是回答除他以外的四个人,他就是诚实人;他若是回答一个人,那个人就是诚实人.
2.老鼠和毒药
答案:需要7只。
1)将一百瓶水按二进制编号。
例如:
第1瓶 :0000 001
第2瓶 :0000 010
...
第100瓶:1100 100
2)给老鼠也进行编号,分别对应七个二进制位ABCDFGH
3)A老鼠需要喝最高位为1的所有瓶子的水,B老鼠需要喝次高位为1的所有瓶子的水,以此类推
4)七天后,看哪几只老鼠死了,如,死的是CFH三只老鼠,对应的二进制数位001001,是第9瓶毒药有毒。
由此题可以引申出来一个很有趣的是:认得十个手指可以表示多少个数?答案是1024即2的10次幂。