100个囚徒100个箱子困境的解析

先上题目:

我们假设存在100个编号从1到100的囚犯,我们把包含每个人号码的纸条随机放置在一个密闭房间的100个盒子中,每次只准进入一个囚犯,他可以打开100个盒子中的任意50个寻找号码,之后必须原封不动的出去,并且不能和其他人交流。如果他们都找到了自己的号码,则都可以获得自由,但如果有一个人没找到,那么都要接受惩罚。但他们可以在进入房间前商量策略。现在我们的目的就是找出最优策略。

解法是:

囚犯进去房间后,先找到与自己编号一样的箱号,打开后按箱号的字条去找下一个箱号,一直到找到的箱子里的字条恰好是自己编号。

假设你是其中一名囚犯(假设编号是50),当你进入房间时,打开编号是你号码的盒子(即50号盒子),里面的纸条上的号码可能不是你的(假设是99),但这没关系,转到99号盒子,看看里面的号码(69),然后转到69号盒子,依此类推。一直这样做,直到找到带有你号码的纸条。

如果你找到了你的号码,那么,根据盒子里的内容(50),你要回到开始时的盒子(50号),这样就形成了一个循环。

如果你自己处在一个n!循环内,那么100个盒子组成n!循环的概率是1/n.但是这么算是不对的。

举个简单的例子。3个囚犯3个盒子。那么所有组合是:

1 2 3:3个1阶循环
1 3 2:1个1阶循环,1个2阶循环
2 1 3:1个1阶循环,1个2阶循环
2 3 1:1个3阶循环
3 1 2:1个3阶循环
3 2 1:1个1阶循环,1个2阶循环

形成3阶循环的概率是 2/6 = 1/3.形成2阶循环的概率是3 /6 = 1/2.形成1阶循环的概率是4/6 = 2/3

除了n=1之外,好像都是满足1/n这个概率的。但是不知你注意到没有发生1阶循环的时候概率里包含了发生2节循环的概率。

现在需求确定的是两件事:

1、如何正确推算100个箱子随机组合里出现n阶循环的概率

2、计算概率的时候如何保证互斥或者减去公有的。

先说结论:对于n个箱子,(<n/2)形成循环的组合是会包含一部分(>n/2)组合的。

但是对于51到100来说,出现一个循环后,剩余组合里势必不会出现其他>50的循环了。很明显的道理,所以这些循环的组合是互斥的。
如何推算:100个箱子生成n!循环的概率:

所有组合数是:100!

所有n!循环的组合(n>50):先从100个选(100-n)个再进行排列组合。然后剩下的n个组成循环,n个循环的组合数(n!/n)。

概率p=C(100,n)*(100-n)!*n!/(n*100!)=1/n

现在证明了这些概率事件互斥,那么只要累加就是按照该策略仍失败的所有概率了。

1/100+1/99+...+1/51= 0.69

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值