一道經典概率題的三種解法 |
送交者: 高玉寶 2009年12月20日09:05:12 於 [靈機一動] 發送悄悄話 |
題目原文 (http://bbs.creaders.net/iq/bbsviewer.php?trd_id=429763) 有100個無期徒刑囚徒,被關在100個獨立的小房間,互相無法通信。每天會有一個囚徒被隨機地抽出來放風,隨機就是說可能被抽到多次。放風的地方有一盞燈,囚徒可以打開或者關上,除囚徒外,沒有別人會去動這個燈。每個人除非出來防風,是看不到這個燈的。 一天,全體囚徒大會,國王大赦,給大家一個機會:如果某一天,某個囚徒能夠明確表示,所有的囚徒都已經被放過風了,而且的確如此,那麼所有囚徒釋放;如果仍有囚徒未被放過風,那麼所有的囚徒一起處死! 囚徒大會後給大家20分鐘時間討論, 如果你是其中的一員,應怎樣利用這20分鐘的時間來制定一個切實可行的辦法呢? 如果說是某一個囚犯一直無法抽到出去放風,那他們就確實無法出去了。不需要考慮這樣的可能哦。
==
既然是概率題,那就先試試概率的方法。 根據波松分布,在平均每人抽到五、六次後,一人沒有被抽到的機率就幾乎等於零了。為保險起見,取平均數為10,則為1000天。所以1000天后,任一囚徒就可宣布所有的囚徒都已經放過風了。但為了更保險,囚徒可選出一人甲,規定由甲來宣布所有的囚徒都已經放過風了。然後約定,如一囚徒第一次被抽到放風,就把燈打開(如燈是開着的,就讓它開着)。另外,輪到甲放風時,如燈開着,就把燈關了。在1000天后,如甲連着三次(具體次數可以約定)沒有看到燈被打開,就可宣布所有的囚徒都已經放過風了。既然是概率方法,那就有不確定性,所以這個方法是有風險的。 解法2 囚徒中選出一人甲。然後規定其他人第一次看到燈是關着的,就把燈打開。輪到甲放風,如燈是開着的,就把燈關了,並記數。 在甲關了99次燈後,就可宣布所有的囚徒都已經放過風了。當然這個方法就和概率無關了,且平均時間將要30年(但總比無期要好)。 這個方法是百分之百保險的,但期限可能會拖得很長。粱遠聲則改進了這方法(http://bbs.creaders.net/iq/bbsviewer.php?btrd_id=967978&btrd_trd_id=429763),可以大大縮短時間。他的方法就是甲(即組長)不是預先設定,而是在過程中自然產生。一開始,燈是開着的(第一天放風的那個囚徒如看到燈是關着的,則把它打開)。其他囚徒,在100天內,如第一次被抽到,或第二次被抽到但燈是關着的,則什麼都不做。如被抽到第二次且燈是開着的,則他是第一個被抽到第二次的囚徒,他就是甲。如甲被第二次抽到時,是在第101天,則甲可以馬上宣布所有囚徒都已被放過風了。如甲被第二次抽到時,是在第100天內,則甲把燈關了,然後記下當時的天數,把此數減掉2,作為關燈的次數。然後等到100天后,再根據我早先給的方法繼續。這裡我對粱遠聲的方法作了點小改動,即省掉了付組長的角色。 解法3 可能你也早已意識到(如沒有,再仔細重讀一下原題),原題中,國王並沒有講明每次放風,一定要在大赦會以後的才算。所以,囚徒們可以在那20分鐘時間內,統計一下被放過風的囚徒數。如全都放過風了,馬上就可宣布所有囚徒都已被放過風了。如還有沒有被放過風的,則可根據解法2繼續(甲可在沒有放過風的囚途中選出,放過風的囚徒則什麼都不做)。當然這個方法也和概率無關,但最有效。呵呵。 |
|
|
|
實用資訊 | |