一群囚犯即将被带到牢房里坐牢。看守把他们集中在一起,宣布:
1)每个囚犯将被关在一个牢房里;
2)每天会随机地抽取一名囚犯放风;
3)放风的地方有一盏电灯,囚犯可以任意开关这盏电灯;
4)电灯永久有电,永远不会损坏;
5)囚犯在放风的地方以及来回的路上都不会被其他囚犯看见;
6)牢房相互之间隔绝,囚犯相互之间不可能传递任何消息;
7)囚犯在放风时除了开关电灯不能留下任何痕迹或者信息;
8)看守只负责随机抽取囚犯,不会帮助囚犯传递信息;
9)如果有人确定所有人都被放风过,可以通知看守,看守确认之后可以把所有囚犯释放。如果永远没有人通知,或者通知的人弄错了(并不是所有人都被放风过),则所有人将永久坐牢,永无出头之日;
10)囚犯们可以商议一个方法出来以便避免永久坐牢。商议好之后就会被关进各自的牢房。
我们的问题是:囚犯们会商议出什么办法?
答案:
1)先抽签或者推举出一个囚犯当“计数者”,其他人被称为非计数者。计数者要记住一共有多少囚犯;
2)非计数者第一次被放风时,如果看到电灯是灭的,就把它打开;如果电灯本来就是亮的,就什么也不做;
3)计数者被放风时,如果电灯是亮的,就把它关了,并把心中记录的囚犯数目减1;如果电灯是灭的,就什么也不做;
4)一旦计数者记录的囚犯数等于0时,表示所有囚犯都已经放风过了,他就可以通知看守。