置换与轮换——百囚犯问题

问题描述

Philippe Flajolet和Robert Sedgewick在2009年提出了“百囚犯问题(100 prisoners problem)。

在某个法制不健全的国家,监狱中有编号从1到100的100名囚犯,监狱长给了他们最后一次机会:

  -----一个房间里有100个抽屉,监狱长随意把1到100这100个号码放到100个抽屉里,每个抽屉一张

  -----囚犯们逐个进入房间,每人可以任意打开50个抽屉,之后关上

  -----如果每位囚犯都在这50个抽屉中找到了他的号码,那么所有的囚犯都会被赦免;如果有人没有找到他的号码,那么所有的囚犯都会被处死

  -----在第一个囚犯进入房间之前,囚犯们允许在一起讨论开抽屉的“策略”;但一旦第一个囚犯进入房间,他们之间就被禁止交流

设计出一种策略,使得尽可能被赦免

问题分析

如果纯粹随机开抽屉,那么所有人被赦免的概率是(50 / 100)^100 ≈ 8*10^-31,可见这个概率非常的小。

囚犯有什么好一些的策略?

下面给出已经被证明的最优策略

循环跟踪策略

每名囚犯进入房间后都——
1、先打开自己号码的抽屉
2、如果这个抽屉有他自己的号码,他就成功了
3、否则,抽屉里会有另外一个号码,然后他打开这个号码的抽屉
4、不断地重复第2步和第3步,直到他已经找到自己的号码,或者已经打开50个抽屉都没找到(那全体就失败了)

 示例1:

考虑一个迷你版的,把100改成8,50改成4,抽屉放纸条的方式按如下所示:

策略的具体实现如下:

1号囚犯打开1号抽屉发现8号纸条、打开8号抽屉发现4号纸条、打开4号抽屉发现6号纸条、打开6号抽屉发现1号纸条-----命悬一线有惊无险
2号囚犯开2号-->开5号-->开3号-----找到
3号囚犯开3号-->开2号-->开5号-----找到
4号囚犯开4号-->开6号-->开1号-->开8号-----找到
5号囚犯开5号-->开3号-->开2号-----找到
6号囚犯开6号-->开1号-->开8号-->开4号-----找到
7号囚犯开7号-----找到
8号囚犯开8号-->开4号-->开6号-->开1号-----找到


大家都被赦免了!

示例2:

抽屉放纸条的方式如下:

策略的具体实现如下:

第一个进去的囚犯开1号-->开5号-->开8号-->开2号----不是,,,( ¯ □ ¯ )……(x___x) 

进一步分析:

抽屉的编号和抽屉里的数字形成置换,根据定理任意置换可唯一的表示成若干不相交轮换的复合(积).

于是示例1中的置换可写成:(1,8,4,6)(2,5,3)(7),示例2中的置换可写成:(1,5,8,2,7)(3,4,6)

于是容易得出结论:如果 i 所在的轮换长度不超过50,那么第 i 号囚犯一定可以找到自己的号码纸条;如果 i 所在的轮换长度超过50,那么第 i 号囚犯一定找不到自己的号码纸条。

几点标注

1、其实按照这个策略,当前50个囚犯成功时,后50已经不必再试就知道他们必然获释

2、在前50个人中如果有人是第50个抽屉才发现自己的号码,那么后面的囚犯都不必再试

最优策略下的成功概率

实质就是在 100! 种(n种元素的置换有n!种)中,有多少置换存在长度大于50的轮换?

易知任意一个置换分解后至多存在一个长度大于50的置换.

我们假定置换下面假定置换 pi 存在长度大于50的轮换 sigma ,其长度为 l.

  ------轮换sigma中的元素有C(100,l)种可能

  -------选定l个元素后,可以形成(l - 1)!种不同的轮换(即圆排列数)

  -------剩下的(100 - l)个元素可形成(100 - l)!种置换

  -------于是这样的置换一共有C(100,l) * (l - 1) * (100 - l) = 100! / l种

囚犯们遇到这样的置换的概率是

所以成功的概率是1 - 0.6882 = 0.3118.

渐近分析

当把100改做2n,50改做n,该策略失败的概率为Σ2nn+1(1/l),记H(n) = 1 + 1/2 + 1/3 +...+1/n

成功的概率 = 1 - (H2n - Hn) = 1 - (H2n - ln(2n)) + (Hn - ln(n)) - ln2

已知,于是

总结

最优策略虽然很容易理解,但却不好证明,以后会证了再补充吧/இ௰இ!

参考链接:

https://en.wikipedia.org/wiki/100_prisoners_problem

https://zhuanlan.zhihu.com/p/31211827?edition=yidianzixun&utm_source=yidianzixun&yidian_docid=0HzDk3uW

中国大学mooc  刘铎  离散数学

 

原文地址:https://www.cnblogs.com/lfri/p/9872617.html