编程之美:扫雷的概率

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

编程之美:扫雷的概率_第1张图片

在一个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 为地雷总数. 分两种情况考虑.

  1. 图中共2个地雷时可能的情况总数:  (M15N2)(31)(51) .
    • A处为地雷的情况总数:  0 .
    • B处为地雷的情况总数:  (M15N2)1(51) .
    • C处为地雷的情况总数:  (M15N2)(31)1 .
  2. 图中共3个地雷时可能的情况总数:  (M15N3)(51)(52) .
    • A处为地雷的情况总数:  (M15N3)1(52) .
    • B处为地雷的情况总数:  0 .
    • C处为地雷的情况总数:  (M15N3)(51)(41) .

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

P(A)P(B)P(C)=10(M15N3)15(M15N2)+50(M15N3);=5(M15N2)15(M15N2)+50(M15N3);=3(M15N2)+20(M15N3)15(M15N2)+50(M15N3).

注意到所求的是比值, 所以 (M15N2) (M15N3) 的值并不重要, 只需知道二者之比. 可以利用

(M15N3)=MN12N2(M15N2)

你可能感兴趣的:(编程艺术,一)