扫雷win10_windows扫雷游戏原来是一道数学难题!

e6b7d922454cafcf0a890c1243457256.png

各位同学大家好,这里是质心数学·游戏·科普频道。

今天和大家聊的是一款有点复古的windows系统自带小游戏——MineSweeper(扫雷)

1e21de67403fec8e9ae786c4181841ac.png

我刚接触这款游戏是高中的上机课,当时的电脑系统还是win95,在大家还不会局域网互联打StarCraft之前(暴雪出品,必属精品,yeah),能够休闲娱乐的就是扫雷,当空接龙,红心大战等几款游戏了。

dafd3ed793e4b51db2881b66d935c5fc.png

童年无网四巨头

这几款小游戏是微软从dos系统过渡到windows系统推广鼠标的系统自带小程序,当时在营销学上也传为一代佳话。如果大家的系统是win10之前的版本,还能通过控制面板,添加程序添加这款游戏,如果是win10,可以在应用商店搜索MineSweeper来添加。

ab52cecfff2df4713d474bbfe73752a1.png

原汁原味的经典版不那么好找

Part.1

扫雷游戏操作非常简单,拿16*30,99个雷的模式来说,鼠标左键点开某一区域,如果是雷,那么游戏失败,如果不是雷,则显示周围8个格子雷的总数。右键则为标记你认为是炸弹的格子,左右键同时按某个格子相当于左键点击周围8个格子非标记的格子。

就这么不断点击和标记,直到找出全部99个雷(打开所有非雷区域),则游戏通关;

c1bced2676c164e94b64490a7c6ee584.gif

你以为的扫雷

但一旦踩中雷,则GAME OVER,需要重新开始。

5233b36077d9c607c3ca81954470e85f.gif

真实的扫雷

起初,多次开局就踩雷,让我一度认为扫雷是一个运气游戏。直到遇到类似下面情形:

6705e042e39d8b6df51674f25aecd7c3.png

两个问号区域,在边界死角处,只能2选1,不得不去猜雷时,我才坚信这的确是一款运气游戏。

8c7c689b42bd56274259da8c3ea2f94e.png

遇到这种情形,我会找来同桌点开,如果没有踩中雷,则双击掌表示是共同的努力,如果踩中雷,就全怪他,我本来想选另外一个的。

fe8f96bcced1a7cb448bcf534b2fb9c9.png

当然这些都是玩笑活。不得不承认,扫雷确实是一个需要拼人品的游戏。这个现象与物理学中的“逾渗”现象很类似。

73892da13d509a77fda427b5843531f0.png

因为是物理现象,所以就不多赘述了

一般人玩扫雷如果总是死太快,就会不断重开重开…直到碰到一个好的开局(然后又快速地死掉)。

d6432c3c785a77e96aa730d1ed14d896.png

那么扫雷开局开出一大片非雷区是好的开始吗?起初一定感觉是这样,但是懂数学的人就会发现:事情没那么简单。

d66bafdd3bb78051c204f0a4460e8751.png

拿99/480的模式来说,开局开出一大片意味着:未开区域雷的密度会上升一个台阶,难的区域在后面。

58961a968afba5f88247ab7184229765.png

还有在开疆扩土中,碰到好多1会更好一些吗?我们计算一下,99/480=0.20625,数字1说明,1与一周相邻的共9个格子雷的密度是0.11,那么其余的格子的雷的密度会相对上升,难点还是在后面。

09699f58b123f74eee65de81cb2deb89.png

??

所以开出更大的数字也许是个好事情,但若你总能开出8,祝你不要玩到自闭吧。

d134737e2b075764122a9af71805a119.png

??

总而言之,从数学的角度我们可以很容易得知,雷的密度越大,也会越难解出来。(这么讲似乎还是跟运气有很大的关系)

Part.2

但今天是教大家用数学方法玩扫雷的,总要拿出点干货,证明运气不好的同学也可以成为扫雷高手。

2aa7cf6a246e812d3835f792d1291635.png

在大部分情形,我们可以通过严格的计算来完成开疆扩土。比如经典的“121定式”,下图中有雷的一定是两个与1相邻的下面那个格子。

bb074f7103ebf8b69c9135dccb4d1e49.png

再比如“1221定式”,有雷的一定是两个与2相邻的格子。

98f0f089cc64fd86c1b6a403d5803b7b.webp

在上述两个经典定式中,其实可以通过一些简单的分类讨论可以得到,其相当于解方程组。

比如上述“1221”定式,上述四个格子分别为x,y,z,t∈{0,1}。相当于x+y+z=2,y+z+t=2,x+y≤1,z+t≤1,只能为y=z=1,x=t=0 。由于解只能为0或者1,就可以将上述运算转化为逻辑运算。

哈哈,是不是很简单!掌握了以上核心秘诀,相信你离扫雷高手已经不远了。

8c7c689b42bd56274259da8c3ea2f94e.png

Part.3

其实扫雷不仅是一个打发时间(测试人品)的小游戏,还是一种经典的NP问题。英文全称为nondeterminate polyomial(不确定多项式问题)

a4eda8a3f9073492468b4989542dac10.png

说人话就是破译密码:容易验证答案是否正确,但是很难正面求解的问题。

与其相对的另外一种问题为P问题,英文为polyomail(具有多项式算法的判定问题)。

扫雷还等价于一种用逻辑运算符¬,∧,∨连结的运算级别为指数级的运算。

这种问题叫做布尔可满足性问题,是逻辑学中一个重要问题,也是当今计算机科学,人工智能研究的核心问题之一,这里就不展开论述了。

8d7eaa1a35a0d14b64c9178b77f3ad99.png

当然扫雷游戏中还有很多其他学问,各位同学也可以去研究一下来与我讨论。

在日常生活中,善于发现问题,没有精神时,多玩玩扫雷可能比多喝热水有疗效。最后祝大家早日成为扫雷高手,我们排行榜见吧!

944b3538dfa4cf1bb5998ccc4bdb4fa9.png
扫雷排行榜 saolei.net

(本文首发于数学联赛微信公众号:如何成为扫雷高手,数学老师教你玩转这款复古小游戏)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/252243.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【扫雷】游戏

一、目的 实现一个扫雷游戏 二、过程 1、游戏框架 首先,游戏开始之前,显示游戏菜单Menu() static void Menu() {printf("#############################\n");printf("########欢迎来到扫雷游戏#######\n");printf("######…

扫雷1.0

目录 一.规则介绍 二.基本思路 三.代码实现 一.规则介绍 扫雷是一个经典的游戏,一张棋盘中有许多不确定是雷还是安全区域的格子,当点击之后若没雷则会在该区域显示周围八个格子雷瑟数目,若踩雷则游戏结束。 二.基本思路 1.创建菜单 2.…

扫雷win10_厉害了,一个自动扫雷游戏项目!

转载自公众号【视学算法】 原文:https://www.cnblogs.com/chestnut-egg/p/9302238.html 自动扫雷一般分为两种,一种是读取内存数据,而另一种是通过分析图片获得数据,并通过模拟鼠标操作,这里我用的是第二种方式。 一、…

RK3566 ALC5616录音调试

1.硬件原理图 MIC_P,MIC_N:mic输入。 I2S:总共有5根线(这里不是指 i2s 标准接口):两根音频数据线(输入/输出)、三根时钟线 其中: I2S_LRCK 是指示当前数据线传输的是左声…

comsol with matlab联合仿真

目前网上的教程基本上只有如何找到comsol with Matlab以及如何打开,和部分代码的讲解,但是要真正的跑起来还有一些步骤,小白在这里跟大家分享一下,不对轻喷🥺 1.comsol文件需要连接到服务器comsol multiphysics serve…

COMSOL6.0软件安装说明+视频教程

链接:https://pan.baidu.com/s/1a_BaY6K-fP0PiMhcw5eLcg?pwd6iis 提取码:6iis 首先用虚拟光驱加载或者用winrar直接解压镜像文件,再双击setup.exe程序,选择简体中文语言; 2.选择新安装; 3.选择你要安装…

COMSOL 5.2安装教程(自用)

3、允许用户协议,将许可证格式修改为“许可证文件”,然后点击浏览载入安装包中“_SolidSQUAD_”目录下的“Comsol52_SSQ.lic” 电磁 AC/DC 模块RF 模块波动光学模块射线光学模块等离子体模块半导体模块 结构力学 & 声学 结构力学模块非线性结构材料模…

COMSOL在云平台的使用教程,超高效的方法来了

在北鲲云超算平台上有多种COMSOL作业提交方式,这里给大家演示的是图形界面提交 在平台上使用图形界面提交超级简单,平台已内置模板,只需按照提示上传文件及选择选项即可,对于没有代码基础的同学来说,这是最推荐的方式…

EDA安装------Centos7 安装Comsol5.5

目录 1.引言2.资源3.安装4.结语 1.引言 由于项目需求,博主最近要做微流控通道的流体仿真,对于一个小白来说,首先就是安装仿真软件了。据目前所知,流体仿真大多数使用Ansys的Fluent或CFX、Comsol两个软件。经过网上查询&#xff0…

页眉如何设置成一页左一页右?页码如何设置成一页左一页右?

WPS页眉如何设置成一页左一页右?页码如何设置成一页左一页右?

WPS页眉不同页之间的修改

1-打开WPS 2-建立第一页的页眉 3-点击第二页的页眉 4-点击一下,取消“同前节” 5-编辑第二页的页眉 6-如果后续不修改,那么后面的页眉应是第二页的页眉

WPS的页眉设置

设置步骤如下 首先点开显示段落标记,这样更方便看到分节符: 在每页文字的最后插入分节符,操作步骤如下: 可以在页面上看到分节符,分节符的作用就是将多个页面分节,分节符前是一节,之后是另外一…

word操作——论文中——设置WPS奇偶页页眉内容不同和公式居中,公式的标号靠右、......

一、设置WPS奇偶页页眉内容不同: 一、先设置“奇偶页不同”: 首先双击页眉,在工具栏点击页眉页脚选项,勾选奇偶页不同、奇数页页眉同前节(可选),后确定。 二、然后,在分各章节的页…

MySQL中BETWEEN AND(范围查询)

0 写在前面 MySQL 提供了 BETWEEN AND 关键字,用来判断字段的数值是否在指定范围内。 BETWEEN AND 需要两个参数,即范围的起始值和终止值。如果字段值在指定的范围内,则这些记录被返回。如果不在指定范围内,则不会被返回。 最近…

利用短信猫发送短信教程解决windows上发送成功而linux上失败问题

前言 目前用过的开源短信猫工具有jSMSEngine和SMSLib,下载地址及使用网上有很多,本文只是简要介绍短信猫的安装使用及在项目中遇到的坑。 说明:本文主要解决windows上通过短信猫发送成功而Linux上发送失败的问题。 通过短信猫发送短信案例…

短信验证码总是发送失败是什么原因?

有些用户在使用某产品时可能会出现短信验证码收不到的情况,同事之前也遇到过这样的情况,连续发送多次依然收不到短信。那么短信验证码为什么会发送失败、原因有哪些呢。#短信验证码安全 现在短信验证码服务在各种网站和App中的实际应用已经非常成熟和广泛…

BaoCms短信发送失败问题解答

BAOCMS(又称生活宝系统)是一款本地生活电商O2O门户系统,程序是基于PHPmysql开发,系统安全稳定,支持二次开发,目前BAOCMS已经成为国内使用最多、功能最强大、性能最稳定的本地电商生活O2O门户系统&#xff0…

阿里云发送短信

1.具备条件 1.阿里云开通短信服务 进入阿里云搜索短信就有对应的短信服务,支付宝购买后进入短信控制台,会有对应的短信服务等信息。包括国内学习、业务统计、系统设置等。 注意:签名和模板不支持个人用户申请未上线业务 2.控制台测试 填写…

android+发送短信的状态,Android--判断发送短信后的状态-发送成功Or发送失败.pdf

您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbsp手机开发 Android--判断发送短信后的状态-发送成功Or发送失败.pdf7页 本文档一共被下载:次,您可全文免费在线阅读后下载本文档。 下载提示 1.本站不保证该用户上…