挖地雷游戏的概率

《编程之美》4.11:挖地雷游戏的概率

转自:http://blog.sina.com.cn/s/blog_71145bba0100mdmh.html

在16*16的地雷阵中,有40个地雷,点击了2下后,出现如下的局面(图1):

挖雷的概率_全图(1)

分析图中的局部(图2),

挖雷游戏的概率(2)

问题1:当游戏中有40个雷没有被发现的时候,A、B、C三个地方有雷的概率P(A), P(B), p(C)各是多少?

问题2:这个游戏局面共有16×16=256个方块,P(A), P(B), P(C)的相互大小关系和当前局面中地雷的总数有什么关系?比如

:地雷的总数从10个到240个,P(A), P(B), P(C)的三条曲线是如何变化的?是否会相交?

分析与解答:

1、从局部的5×3个格来看,可能的情况有两种:

第一种:B片区(黄框的3个格)有1个雷,A片区(红框的5格)有0个雷,C片区(蓝框的5格)有1个雷。

对应的概率:P(A) = 0, P(B) = 1/3, P(C) = 1/5

第二种:B片区有0个雷,A片区有1个雷,C片区有2个雷。

对应的概率:P(A) = 1/5, P(B) = 0, P(C) = 2/5

以上的两种情形记为M2,M3,对应的A、B、C有雷的概率记为:

P(A2) = 0,   P(A3) = 1/5;

P(B2) = 1/3, P(B3) = 0;

P(C2) = 1/5, P(C3) = 2/5;

2、考察剩余雷数与情形M2,M3的关系

将地雷总数记为T,方格总数记为G,则每个方格有雷的概率Pg=T/G,相应的没有雷的概率为1-Pg,因为讨论的是16×16的雷区

,因此G=256,对于问题1,T=40,对于问题2,T属于[10, 240]

在16*16大小的雷区出现情形M2或者M3的概率记作P(M2), P(M3),考虑情形M2和M3的所有可能(Comb表示组合),

则有(参考图3)

挖雷游戏的概率(3)

          A片区            B片区                  C片区              1格  2格

P(M2) = (1-Pg)^5 * Pg*(1-Pg)^2*Comb(3,1) * Pg*(1-Pg)^4*Comb(5,1) * (1-Pg)^2//我认为这里应该不用乘1格和2格没有雷的概率

              A片区               B片区                  C片区       1格  2格

P(M3) = Pg*(1-Pg)^4*Comb(5,1) * (1-Pg)^3 * Pg^2*(1-Pg)^3*Comb(5,2) * (1-Pg)^2//我认为这里应该不用乘1格和2格没有雷的概率

将T=40或者T属于[10, 240]带入即可计算出P(M2)和P(M3)

3、P(A), P(B), P(C)与P(M2), P(M3)的关系

因为讨论P(A), P(B), P(C)的前提是M2,M3的局面已经出现,所以影响P(A), P(B), P(C)大小的并不是P(M2)和P(M3)的绝对值

,而是它们出现的相对比例关系,表示如下:

P(A) = P(M2)*P(A2)/(P(M2) + P(M3)) + P(M3)*P(A3)/(P(M2) + P(M3));

P(B) = P(M2)*P(B2)/(P(M2) + P(M3)) + P(M3)*P(B3)/(P(M2) + P(M3));

P(C) = P(M2)*P(C2)/(P(M2) + P(M3)) + P(M3)*P(C3)/(P(M2) + P(M3));

将P(A), P(B), P(C)表示为Pg的函数:

P(A) = 2*Pg/(3+7*Pg);

P(B) = (1-Pg)/(3+7*Pg);

P(C) = (3.4*Pg + 0.6)/(3+7*Pg);

T = 40, P(A) = 7.63%, P(B) = 20.61%, P(C) = 27.63%

4、当地雷总数从10逐渐变化到240,P(A), P(B), P(C)三条曲线如图4所示(图中对XY坐标进行了适当的放大)

挖雷游戏的概率(4)

虽然图中三条曲线是相交的,但是严格来说,因为地雷的总数是整数,而概率是浮点数,如果取足够的精度,P(A), P(B), P

(C)三条曲线是不连续的,并且三者没有交点。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值