一道经典概率题的三种解法 |
送交者: 高玉宝 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继续(甲可在没有放过风的囚途中选出,放过风的囚徒则什么都不做)。当然这个方法也和概率无关,但最有效。呵呵。 |
|
|
|
实用资讯 | |