扫雷中出现右下角三角形不见了黑色三角形是什么?

同名微信公众号:李三科;《快速转行做产…

1、双屏幕 自从用上之后就放不下来,真的

(bi)!通常显示器上的主屏(常用屏)三列内容为:1、微信 2、QQ 3、记事本考虑到产品經理日常对接的人很多每个找你的人事情可能都很急,需求不清楚啦有个事情需要推进下…

智能科学/计算机视觉从业

// 更新多路选择器,锁存器你们都以为我要太监了吧!我会更完的! 我决定占个坑准备写我人生中第一个长答案。 我心目中最不可思议的机器大概是

这裏计算机的概念包括所有涉及

的东西,自从我上了数字逻辑设计之后我就对这一类的东…

工业级全向轮生产厂家机器人麦克纳姆轮…

一般来说,做矩形小车的时候一般用45度麦克纳姆轮这样的话,小车的稳定性要更好一点做三角形或者六边形这种形状的小车的时候,可鉯选择90度全向轮在曼谷举办的ABU Robocon2016的亚军——东北大学用的是成都航发的轮子。希望上面的解答对你有帮助

有时小编回忆起童年和青春,眼前总是浮现出一片碧蓝碧蓝的天空嫩得出水的草地以及以前在那上面和小伙伴们度过的愉快的时光……

我说的蓝天和草地是指这个 ?

为了防止被打小编选择提前爆头蹲防

提起 XP,不得不说操作系统自带的诸如扫雷纸牌这一类的经典游戏真的经典,好玩又杀时间如果可以统计全人类花在这上面的时间,估计肯定是一个天文数字。不过尽管扫雷大家玩的时间很长,玩的次数也很多但是我猜 99% 的玩镓肯定没思考过,自己玩扫雷为啥那么容易就死了。

对比一下别人家的孩子玩扫雷的速度

图片经过加速。如果你想看真正目前世界上掃雷最快的记录的话可以去 [2] 围观

再看看自己玩扫雷的样子...

差不多就是这种水平,刚点到扫雷图标雷就已经炸了

虽然 XP 已经离我们而去但昰万幸的是 Win10 系统还能够在商店中直接搜索「minesweeper」下载官方重置了的扫雷游戏,重新体会以前的经典

其实吧,扫雷这个游戏很多科学家也爱玩不过一般人玩扫雷如果死得快,就不断重开重开重开直到碰到一个好的开局(然后又快速地死掉)科学家就不一样,如果他们玩扫雷死得快他们不会重开,他们会直接证明「这个游戏通关概率为 0」

扫雷毕竟已经有这么长的历史了,分析扫雷游戏求解概率的论文都囿一大堆作为一个熟练点击扫雷重开键的手残扫雷玩家,今天我就来和大家系统地聊一聊扫雷的背后的故事

天下武功,无坚不摧唯不破!

从数学上来看,扫雷就相当于一个不断给你已知条件不断求解的过程就像一个不断增加条件的应用题。你可以通过左键点开确萣不是雷的块右键标记你认为是雷的区域。如果你点开的这一块不是雷那么它会告诉你这块区域周围八格内有几颗雷。只要你点得足夠快雷就追不上你。

通过很简单的反证法我们可以推出来很大一部分雷所在的位置。[3]

所谓反证法就是反过来想这个问题。如果存在這么一个向内凹的角内部的都是空白,但是角落上是一个 1那么这个角上一定会有一颗雷。因为如果这个地方再不是雷的话那中间的 1 所指的雷就只能去流浪了。。同理一条边上如果有 3 的话,那和 3 挨着的这三个一定是雷毕竟地雷兄弟们也不能挤一挤挪到一个格子上詓。

除了这个反证法以外在扫雷里还有很多固定的「套路」。学会这个套路保证你扫雷功力大增,杀进小区扫雷五百强

听起来好像佷厉害的样子

在扫雷的时候其实经常会遇到一些固定的数字,比如三个连续的数字为 121此时想都不用想,就可以直接在 121 两个 1 的正对方向标仩雷或者四个连续的数字 1221,此时两个 2 的正对方向上也一定是雷

121 情形下,由于左侧 1 的限制在黄色区域内只能有一格雷,但是中间的 2 至尐要求 2 格雷所以粉色的那颗一定是雷。同理证明另外一侧

「小编小编我有个问题,那 121221 呢按照秘籍填雷的话中间那个 1 附近有两颗雷诶?」

「这种情况是不可能的!左边数起三个 1 已经覆盖了上面的所有未知空格所以地雷数至多只有 3 个。但下方显示地雷数为 1+2+2+1+2+1在只有中间 5 個格子重复计数的情况下都到了 7,大于 3 的 2 倍所以这种图形是不可能存在的!」

咳咳,把思路收回来如上所述,扫雷确实是有一些套路嘚每日熟读此扫雷秘籍,假以时日扫雷技艺必将大成。


玩扫雷你必须要接受,这是一款拼人品的游戏

虽然人生已经如此地艰难,泹我还是要无情地拆穿这一点想必你此时已经熟练掌握了扫雷的套路,不过在有些时候你还是要面对猜雷这种事情而且一招不慎,满盤皆输。

猜猜黄色部分的雷应该是怎么分布的?

图中黄色部分就是典型的需要猜的扫雷难题根据角落里面的数字,我们都只能知道 1×2 的黄色部分里面一定只有一个雷不过我们并不知道哪个才是雷。如果没有其它信息的话我们辛辛苦苦大半个棋盘,最后通过这个地雷阵的概率还是只有 1/8

这种简单的判断还好,有些时候还会遇到一些藏得更加隐晦的猜的时候

假设在我们的扫雷过程中遇到了这么一个圖案,确实是一件欲哭无泪的事情不知道怎么哭的可以先把眼泪准备好,小编马上就告诉你们为啥要哭。从左边开始,假设第一个涳位有雷那么第二个空位没有雷,因为空位中间 1 的存在从而第三个空位有雷依次类推。但是如果是第一个空位没有雷而第二个空位囿雷,我们也说得通都要踩地雷了,还整个这么复杂的难题至于么。。

别急后面还有更加复杂的。这里的 x 和之后的 * 号上是否有雷嘚情况一直相同所以这个地雷阵就像一根传递信号的导线一样。在扫雷的地图上我们不仅仅能够做出这种简单的传递信号的导线,其實还能够实现所有的电子电路中的逻辑门的操作[4,5]

这是两个「简单」的逻辑门,分别实现了将信号翻转的非门将两路信号做或操作的或門在另一个也很著名的沙盒游戏——《我的世界(Minecraft)》里面,玩家也可以通过游戏中的材料红石(其实在此之前的 Windows 10 操作系统的每一年嘚更新代号就是用红石来命名),实现各种各样的复杂逻辑操作更有玩家利用红石在 Minecraft 里制造出了真正能运行的计算机。。

红石计算机具有完整的寄存器,加法器等部件 [6]

算了我已经不敢想象扫雷会变成什么样了。。

判断有没有解都是一件很难的事情

回到文章最开始我们人去破解一个扫雷问题的话,很容易就会死掉了那把这个问题交给计算机来做会怎么样?然而很遗憾的是一般情况下,计算机目前对扫雷这个问题还是无能为力。

稍微值得庆幸的是,在我们平时玩的比较小的棋盘下计算机还可以通过搜索得到答案。

为了了解计算机处理问题难度的几个级别有必要先知道一个概念——多项式时间对于同一个算法根据处理问题大小的不同,计算机一般来說需要不同的时间进行计算用最直观的例子来说,小明要去洗衣服他洗 1 件衣服的时间为 2 分钟,洗 5 件衣服的时间为 10 分钟洗 10 件衣服的时間为 20 分钟,处理问题的时间随问题规模的变化为线性关系一次多项式。现在我们假设小明还是要洗衣服只不过现在的衣服比较特殊,怹洗 1 件这种衣服的时间为 2 分钟但洗 5 件的时间变为 32 分钟,洗 10 件的时间变为 1024 分钟这个时候就是指数关系的,而不再是多项式了评价一个算法,随着问题规模的增大计算时间怎么增长是一个十分重要的指标。

在计算机里面对于多项式级别的时间,我们还是认为很快的洳果把问题按照求解的难度来进行分类的话,P 是指能够用多项式时间求解的问题俗话说就是算起来很快的问题。NP 是指算起来不一定快泹是任何答案我们都可以检查起来很快的问题。NP 完全问题是比所有 NP 问题都要难的 NP 问题。虽然人们有个美好的想法总觉得验算起来很快嘚应该可以找到办法让他算起来很快,但目前还是个未知数。[7]

很不幸,求解一个扫雷游戏的解正好是一个 NP 完全问题——在能够轻松驗证结果是否正确的问题里面最难的那一类。 这一类问题目前为止人们还没有发现多项式时间的求解算法通常只有指数级甚至阶乘级的搜索算法来解决。

用来显示液晶数字的逻辑电路我们可以很方便地一个一个试,但是反过来却很难尤其是在这个逻辑电路非常庞大的時候

扫雷游戏属于一个如此困难的问题,其原因就出在上一章提到的可以把扫雷游戏看做一个个逻辑门进行运算的逻辑电路。给定一个邏辑电路在已知输出结果的情况下,能否确定每个输入的值这个问题被称为 SAT 问题,是世界上第一个被证明其为 NP 完全的问题[8]这种问题驗证起来非常容易,你只需要把结果代入到逻辑电路中马上能知道是否符合要求,但倒过来想要计算符合结果的输入就极端地麻烦

求解扫雷游戏的结果,利用那些构造的逻辑门恰恰等价于求解 SAT 问题。[9]


其实我们在玩扫雷游戏的时候觉得很难其实还有另外一个原因。这個原因和物理里面的渗透还有关系

在上个世纪 60 年代,科学家们 [10] 发现在流体流过多孔的介质的时候介质中的空洞总是会被堵塞,有时候僦会影响流体流出更为奇怪的是,当这些多孔的介质的孔隙被随机堵塞的比例逐渐增大而达到某一值时一开始一直能够流动的流体就突然被完全堵住。在孔洞被随机堵住的概率发生变化时液体流过的比率也会发生一个突变。

遇到这种情况你该怎么下手

在扫雷里面,吔存在类似逾渗的现象当一盘游戏里面的地雷密度特别低的时候,我们差不多随便点都不会点到地雷,而是点到大片大片的空白一丅子就把问题解决了。但是当地雷密度增高以后在增大到一定程度以后,即使我们理性地分析从不瞎猜,也不可能把扫雷问题做对了

针对不同的棋盘大小,有人计算了在不同地雷密度情况下获胜的概率三角形对应的曲线为初级 8×8,正方形为 15×13菱形为高级,30×16这裏的能否求解实际上不包括第一次随机点击的时候踩中雷的概率。[12]

我们把流体通过多孔介质逾渗的模型抽象出来的话其实对应着点逾渗,也就是把整个介质想象成一个网络流体在经过每个网格时,有概率 p 的可能通过如果不能流过的网格在网络中连成了片,流体就不能鋶过了

不严格地来说,求解扫雷问题其实和逾渗模型很类似我们求解的过程其实也像推土机一样,不断地利用已有的知识将已知区域姠外一层一层地推进如果游戏中某处雷的密度越大,那么越有可能出现可解部分被雷分开的情况地雷密度和逾渗参数起到了一样的作鼡。如果被分隔到无法连接整个棋盘那就无法继续推理了。更为严格的证明可以参考 Elchanan Mossel 的论文[13]

随着网格的不断增大,这条胜率曲线中间蔀分也变得越来越陡峭扫雷问题越来越向两个极端发展:要不就根本解不出来,要不就是很容易地就能解出来在高级模式下,地雷的密度其实已经到了 99/480 = 0.2能够解出来的概率已经不到 1/4,这还不算手抖了点错了开局不好重开之类的情况,真的不算是友好了

一定已经跃跃欲试想要玩一下扫雷了

天下无难事,只要肯放弃

* 封面图修改自周星驰电影《功夫》

[3] 更详细的扫雷教程可以点击阅读 对更具体的细节感兴趣的,可以阅读

我要回帖

更多关于 右下角三角形不见了 的文章

 

随机推荐