您的位置:首页 > 编程语言

编程之美:扫雷的概率

2016-06-20 15:53 197 查看
题目说, 一局16×16的扫雷游戏刚开始, 只翻开了两格, 分别显示数字1和2, 如下图所示(只画出了3×5的局部示意图).



在一个16*16的地雷阵中,有40个地雷。用户点击了两下,出现如图4-21的局面。分析图4-22所示的这个局部。

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

根据数字1和2的提示, 图示3×5方格中至少2个地雷, 至多3个地雷. 记M=16×16=256为扫雷游戏中格子总数, N为地雷总数.
分两种情况考虑.
图中共2个地雷时可能的情况总数: (M−15N−2)⋅(31)⋅(51).
A处为地雷的情况总数: 0.
B处为地雷的情况总数: (M−15N−2)⋅1⋅(51).
C处为地雷的情况总数: (M−15N−2)⋅(31)⋅1.

图中共3个地雷时可能的情况总数: (M−15N−3)⋅(51)⋅(52).
A处为地雷的情况总数: (M−15N−3)⋅1⋅(52).
B处为地雷的情况总数: 0.
C处为地雷的情况总数: (M−15N−3)⋅(51)⋅(41).

要求的概率可以简单地相除得到:

P(A)P(B)P(C)=10⋅(M−15N−3)15⋅(M−15N−2)+50⋅(M−15N−3);=5⋅(M−15N−2)15⋅(M−15N−2)+50⋅(M−15N−3);=3⋅(M−15N−2)+20⋅(M−15N−3)15⋅(M−15N−2)+50⋅(M−15N−3).

注意到所求的是比值, 所以(M−15N−2)和(M−15N−3)的值并不重要,
只需知道二者之比. 可以利用

(M−15N−3)=M−N−12N−2⋅(M−15N−2)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: