监狱里有10个犯人,他们即将被执行死刑,但是那天是监狱长生日,监狱长决定给他们出一道智力题,如果有谁答对了就可以免除死刑。题目是:10个人从前往后站成一排,每人头上戴一顶帽子,帽子的颜色要么是黑色,要么是白色,每个人只能看到自己前面的人的帽子的颜色,但是能听到他后面的人所讲的话。当他们带上帽子后,从最后一个人开始说自己头上帽子的颜色。在带上帽子前,犯人们可以自己提前商量一个策略(只能说一个数字和一个汉字,这个汉字是要么是黑,要么是白),使得获救的人数最多。问应该如何设计这个策略。
思路:这个可以用计算机的二进制来模拟。假设黑色帽子表示1,白色帽子表示0,那么,从最后一个人开始,他只需要报出自己看到的黑色帽子的数量以及根据推理得到的自己帽子的颜色,前面的人听到数字,可以判断自己的帽子是黑色还是白色,并且还可以将自己看到的黑色帽子数说给前一个人听。假设第5个人听到第6个人(从前往后数)说白、4,表示第6个人猜出自己帽子的颜色为白色,并且自己看到的黑色帽子数为4,假设第5个人看到的黑色帽子数只有3,那很明显自己的帽子是黑色,那他的答案就是黑、3。这样除了最后一个人以外,前面的人都可以获救,最多能救9个人。