有100個無期徒刑的囚徒,被關在100個獨立的小房間,互相無法通信。每天會有一個囚徒被隨機地抽出來放風,隨機的意思就是可能被抽到多次。
放風的地方有一盞燈,囚徒可以打開或者關上,除囚徒外,沒有別人會去動這個燈。每個人除非出來放風,否則是看不到這個燈的。
一天,全體囚徒大會,國王大赦,給大家一個機會:如果此後某一天,某個囚徒能夠明確表示(但事先沒辦法詢問其他囚徒),所有的囚徒都已經被放過風了,而且的確如此,那麼所有囚徒釋放;如果仍有囚徒未被放過風,那麼所有的囚徒一起處死!
囚徒大會後給大家20分鍾時間討論方法,然後放回牢房,囚徒們能找到方法嗎?
補充:
這盞燈會永遠有充足的能源供應,如果燈泡壞了或是電路出了故障會馬上修好,當然修理人員不會改變燈的狀態(開或關)。除了開關這盞燈,放風的囚犯放風時留下的任何其他痕跡都會在夜晚被清除幹淨。(包括囚徒在燈上所作的任何記號)
第一種方法:
第一天出來的這個囚徒負責拯救大家,以後出來的囚徒:
1.當燈是關著的時候,如果他沒有開過燈,那他可以打開燈,否則他不能開燈;
2.當燈是開著的時候,他不動燈。
3.第一個囚徒在他放風的時候,如果發現燈是開的,那麼他就關閉燈。這時他就把放過風的囚徒數加1.
當第一個囚徒的計數達到99的時候(加上他自己是100),他就可以宣布所有的囚徒都放過風,按平均計算100×99=9900天,就是27年。
第二種方法分兩個階段:
階段一:(前100天決定誰來計數)
1.第1~99天,初始燈關著,第一個兩次放過風的人將成為計數者,並將燈打開。設其為第k天,第二次放風,則他知道已經有k-1個人放過風,做為100天後計數的初始值。
2.第100天放風的人如果看見燈關著,則宣布所有人都放過風;否則把燈關上。
階段二:(100天後)
1.如果計數者放風時看見燈開著,則將放過風的人數加1並關燈,到100時宣布勝利。
2.其他人如果以前沒放過風,並且燈關著,則開燈,否則不動。
此方法期望年數為
24.42年。