有100个囚犯,监狱长想玩一个囚徒释放的游戏,在一个封闭的房间里放着一排张卡片,卡片反面都一样,正面写了每个人的名字,总共100张。
囚犯依次进入房间,每人最多翻50张卡片。如果翻开的卡片号码与自己的名字一致,那么这个囚犯就成功了。当且仅当所有的囚犯成功,大家才能被释放。
为了能够成功逃脱,囚犯们在玩游戏之前可以一起商量选卡片的策略?
注意:
1.囚犯依次进房间,进房间时以及进房间前后,都不能互相交流,包括什么暗示什么的都不能。
2.不能做任何记号,不允许把卡片拿出来或互换位置,哪怕是自己的号码。
3.每个囚犯进房间的时候,房间的布置是一模一样的。
结论:概率约为 0.31183 。(推广到人数为n ,概率不低于 0.3 )
策略:置换群+不相交循环。
该题目改编自:100 prisoners problem 思路为:https://www.zhihu.com/question/27050108
囚徒们提前商量编号,问题就转换了。以6个抽屉为例:
6个抽屉里的号码随机排序有6!=720种
能够正确的排序种类有如下几种情况:
1、所有6个号码对位(只有123456)=============1种情况
2、其中任意4个号码对位,另2个互换位置(比如123465)==C(6,4)=15种情况
3、其中任意3个号码对位,另3个互换位置(比如123564)==C(6,3)*2=40种情况
4、其中任意2个号码对位,另4个两两互换位置(比如124365)==C(6,2)*C(4,2)/2=45种情况
5、其中任意1个号码对位,另外任意两个互换位置,其余三个互换位置(比如132564)==C(6,1)*C(5,2)*2=120种情况
6、没有号码对位,分成两组,每组3个号码互换位置(比如231564)==C(6,3)/A(2,2)*2*2=40种情况
7、没有号码对位,分成三组,每组2个号码互换位置(比如214365)==C(6,2)*C(4,2)/A(3,3)=15种情况
共计:1+15+40+45+120+40+15=276种
成功的概率为276/720=23/60
能够正确的排序种类有如下几种情况:
1、所有6个号码对位(只有123456)=============1种情况
2、其中任意4个号码对位,另2个互换位置(比如123465)==C(6,4)=15种情况
3、其中任意3个号码对位,另3个互换位置(比如123564)==C(6,3)*2=40种情况
4、其中任意2个号码对位,另4个两两互换位置(比如124365)==C(6,2)*C(4,2)/2=45种情况
5、其中任意1个号码对位,另外任意两个互换位置,其余三个互换位置(比如132564)==C(6,1)*C(5,2)*2=120种情况
6、没有号码对位,分成两组,每组3个号码互换位置(比如231564)==C(6,3)/A(2,2)*2*2=40种情况
7、没有号码对位,分成三组,每组2个号码互换位置(比如214365)==C(6,2)*C(4,2)/A(3,3)=15种情况
共计:1+15+40+45+120+40+15=276种
成功的概率为276/720=23/60
因此100个也就是
情况1、循环长度为51数:A(100,49)*50!=100!/51!*50!=100!/51
情况2、循环长度为52数:A(100,48)*51!=100!/52!*51!=100!/52
情况3、循环长度为53数:100!/53
.......
情况50、循环长度为100数:100!/100
共计100!/51+100!/52+100!/53+.......+100!/100
即100!-(100!/51+100!/52+100!/53+.......+100!/100)能完成。
概率为1-1/51-1/52-1/53-......-1/100=0.311827821
情况2、循环长度为52数:A(100,48)*51!=100!/52!*51!=100!/52
情况3、循环长度为53数:100!/53
.......
情况50、循环长度为100数:100!/100
共计100!/51+100!/52+100!/53+.......+100!/100
即100!-(100!/51+100!/52+100!/53+.......+100!/100)能完成。
概率为1-1/51-1/52-1/53-......-1/100=0.311827821
amazing!!! (例子源于:真正傲雪冰寒 )