魔方吧·中文魔方俱乐部

 找回密码
 注册
搜索
热搜: 魔方
楼主: tiawing
打印 上一主题 下一主题

扫雷游戏的概率问题? [复制链接]

Rank: 4

积分
1194
帖子
924
精华
6
UID
44804
性别
保密
1#
发表于 2009-2-2 23:13:15 |显示全部楼层
假设雷区在点击之前就生成,第一次点击点中地雷,算失败。
用电脑模拟,试验600次,成功(全部打开)的次数为
    随机点,45次          概率   45/600=7.5%
    固定点击角,44次
    固定点击中心点,48次。                            概率与点击方式基本无影响。
------------------------------------
若雷区在点击之后生成,那么上述试验600次中平均有10次是直接点中地雷造成失败的。所以有效次数为590次。
    随机点,45次          概率   45/590=7.6%

使用道具 举报

Rank: 4

积分
1194
帖子
924
精华
6
UID
44804
性别
保密
2#
发表于 2009-2-2 23:33:44 |显示全部楼层
雷区中除了地雷的格子外,每个格子上都是1个数字,该数字代表这个格子周围相邻的8个格子中的地雷数。
当我们用鼠标左键点击一个格子时,若该格子上的数字为0,那么就显示该格子周围全部格子上的数字,若其中也有数字0的格子,那么它周围全部格子的数字也全部显示,依次类推,直至没有新的数字为0 的格子被显示。
当我们用鼠标双击点击一个已显示数字的格子时,若该格子上的数字与周围地雷数相等,且标记的地雷位置都正确,那么显示该格子周围不是地雷的格子上的数字,若其中有数字0的格子,那么它周围全部格子的数字也全部显示,依次类推,直至没有新的数字为0 的格子被显示。
-------------------------------------------------------
所以单击就全部打开雷区的条件就是,首次必须点击中数字0的格子,并且数字为0的格子必须全部相连,并且全部数字不是0的格子必须至少与其中一个数字0格子相连。

使用道具 举报

Rank: 4

积分
1194
帖子
924
精华
6
UID
44804
性别
保密
3#
发表于 2009-2-3 00:16:47 |显示全部楼层
用电脑模拟,试验六万次,成功(全部打开)的次数为
    随机点,4537次          概率   4537/60000=7.56%
    固定点击角,4429次                                  7.38%
    固定点击中心点,5205次                           8.675%
--------------------------------------------------------------
试验次数足够多时,还是可以看出,点击中心全部打开的概率比点击角落概率大些。
因为数字0的格子分布在中心的概率比分布在角落大。

使用道具 举报

Rank: 4

积分
1194
帖子
924
精华
6
UID
44804
性别
保密
4#
发表于 2009-2-3 00:44:28 |显示全部楼层
电脑模拟的程序是这样的:
创建20*30的二重变量Z(i,j),初始值都为0 ,(对应20*30雷区中相对应的格子)
随机选出其中的十个变量(代表地雷所在的格子),每个被选择的变量周围的变量的值都加1,      
完毕后,被选择的十个变量的值设为9。
这样处理后,这600个变量的值从0至9。每个数值就代表相应格子周围的地雷数,数值为9的变量其实代表地雷格。
然后再随机选择其中的一个变量(代表点击该格子)
判断其值,若不是0,失败(不能全部打开雷区)。
若为0,则从第1个变量开始一直到最后一个变量,对每个变量进行以下判断:
        若为9,接着判断下一个;
        若不是9,判断其周围的变量中是否有0,有0判断下一个,无0则失败,直接退出判断。
设定试验总次数,累计其中成功的次数,就得出近似概率。

使用道具 举报

Rank: 4

积分
1194
帖子
924
精华
6
UID
44804
性别
保密
5#
发表于 2009-2-3 13:23:18 |显示全部楼层
单击就全部打开雷区的条件就是:首次必须点击中数字0的格子,并且数字为0的格子必须全部相连,并且全部数字不是0的格子必须至少与其中一个数字0格子相连。
-----------------------------------------------------
原先模拟600次得出的结果,就是按照上述条件得出的。但电脑运行速度慢。
后来模拟60000次时,改进的程序的设计,把其中数字为0的格子必须全部相连的条件换成数字为0的格子周围必须有0的格子
实际上这样变换有点问题。因为前一个条件可以推导出后一个条件,但后一个条件不能推导出前一个条件,也就是它们不等价。比如有两个0格子相连,但不与其他格子相连,满足后面的条件,但不满足前面的条件。所以,上述得出的概率应该再小些。
-----------------------------------------------
重新 修正程序,但运行速度慢了,让它运行6000次,得出以下结果:
固定点击角:第一次484次,第二次522次,第三次526次,   平均511次。                 概率8.5%
固定点击边:第一次481次,第二次493次,第三次518次,   平均497次。                  概率8.28%
固定点击中心:第一次441次,第二次413次,第三次420次,   平均425次。    概率7.08%
随机点击:第一次435次,第二次478次,第三次445次,   平均453次。    概率7.55%
---------------------------------------------------------------------------------------------
好像跟楼上的直觉相符,角概率最高,边次之,中心最低。
等我费时间给它们都运行60000次,看看。

使用道具 举报

Rank: 4

积分
1194
帖子
924
精华
6
UID
44804
性别
保密
6#
发表于 2009-2-3 13:43:26 |显示全部楼层
运行六万次,得出以下结果:
随机点击:成功4397次。    概率7.33%。        费时间啊!
其他固定点击方法等出结果后再公布。

使用道具 举报

Rank: 4

积分
1194
帖子
924
精华
6
UID
44804
性别
保密
7#
发表于 2009-2-4 15:47:19 |显示全部楼层
固定坐标:1,1
试验次数:60000
成功次数:5016
花费时间:4分5秒
-----------------
固定坐标:1,15
试验次数:60000
成功次数:4881
花费时间:3分57秒
-----------------
固定坐标:10,15
试验次数:60000
成功次数:4329
花费时间:3分25秒
------------------
随机取位:
试验次数:60000
成功次数:4378
花费时间:3分33秒
-------------------
固定坐标:10,1
试验次数:60000
成功次数:4888
花费时间:3分59秒
----------------------------------------------------
从上可以看出,固定点击角、边,比点击中心成功概率大些。

使用道具 举报

Rank: 4

积分
1194
帖子
924
精华
6
UID
44804
性别
保密
8#
发表于 2009-3-29 14:15:03 |显示全部楼层
31楼的程序好快,不知如何设计的,可以透露一下么?

使用道具 举报

Rank: 4

积分
1194
帖子
924
精华
6
UID
44804
性别
保密
9#
发表于 2009-3-29 14:35:05 |显示全部楼层
floodfill我都不知是个什么东西,百度一下,才知与图形填充有关。这方面的东西太缺乏了。对程序我只知道了一般原理。然后根据要求,自己来设计代码,对于很多现成的代码不了解,所以运行速度方面差了很多。看来要好好补补这方面的东西。

使用道具 举报

Rank: 4

积分
1194
帖子
924
精华
6
UID
44804
性别
保密
10#
发表于 2009-3-29 14:50:53 |显示全部楼层
不过31楼算出的概率好像跟我算出的不同。
不知31楼面积判断法是如何实现的。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|魔方吧·中文魔方俱乐部

GMT+8, 2024-6-1 17:52

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部