编程之美:扫雷的概率
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)
在一个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)
相关文章推荐
- 吴柄锡 github----MHA helper
- Java Annotation
- java.lang.IllegalStateException: No activity
- do{} while(0)
- C++ const 的全面介绍
- php 解决json_encode中文UNICODE转码问题
- 教你实践ASP.NET Core Authorization[转]
- BOS项目练习(activiti,历史数据操作,流程变量,任务组,监听器,网关,spring整合)
- java 值传递和对象传递
- C++中map的概念,与简单操作
- 五. 菜单编程--Windows编程课程学习笔记
- (转)java反编译i++和++i问题
- eclipse(快捷键)积累中............
- Cookie学习和个人浅见
- 前度控制器源代码分析
- Java InputStream读取数据问题
- python基础之内置模块(二)
- 谈谈我对类加载器的理解
- NumberOf1 Java解法
- java中的函数式编程(一)