3分钟了解数独

作者: lzl727 | 来源:发表于2017-03-19 12:31 被阅读154次

看了《最强大脑》20170317这期,不禁为13岁的数独少年胡宇轩的精彩表现点赞。

消战数独

通过节目,很多人对“数独”游戏产生了兴趣。我们就用3分钟来认识一下。

什么是数独

数独(Sudoku)游戏,最普遍的形式就是九宫格,即在9格乘9格的大正方形(大宫)中有9个3格乘3格的小正方形(小宫),一些空格中已被填上数字(1至9),玩家需根据这些已知的数字,推算出剩余空格里应填入的数字(1至9)。规则是大宫每一列、每一行及每个小宫的数字都不能重复。即:

1.每一行都用到1到9,位置不限

2.每一列都用到1到9,位置不限

3.每个3×3的小宫都用到1到9,位置不限

题面 题解

难度越大的数独,题面给出的数字信息就越少。从严格意义上说,只有具有唯一解的才叫数独。所以,难度越大的数独,题面的生成其实比解答更难。

了解了数独的基本规则,我们可以从标准数独衍生出很多花式数独。比如格子数量上可以简化成也可以增多,比如内容上可以采用图形、汉子,大宫小宫的形状也可以变化……,这里就不展开了。

花式数独 雪花数独 太极数独

需要区分的是,数独和我们中国传统的九宫格游戏不同。九宫格起源于河图洛书,是3×3的九个方格,填入1~9的数字,使横向、纵向、斜向三条线上的三个数字之和皆等于15。在《射雕英雄传》中黄蓉破解九宫格的口诀就是:“戴九履一,左三右七,二四有肩,八六为足,五居中央。”

九宫格游戏

如何解数独

数独的解法很多,但从规则来看,基本解法无非就是以下两类:一是从所缺的数字入手,看行、列、小宫还差哪些数字,进行推演,我们叫唯余法;一种是从数字的位置入手,看数字可能出现在哪些地方,习惯上叫排除法。

唯余法:从所缺的数字入手

最简单的,就是当某行、某列或某小宫中已经出现八个不同数字时,最后一格即剩下还未出现过的第九个数。这个很好理解。

进阶一点,我们要知道,每一小格会受其所在单元中其他20格的牵制,假如这20格里面已经出现了1-8这8个数字,我们就可以断定这格一定是未出现的唯一数字9。如下面这题,可以判断出目标格中的数字为1。

维余法

排除法:从数字的位置入手

在每个单元(行、列、小宫)中,每个数字只能出现一次,那么也就意味着,如果一行已经出现了一个1,这行的其他格就不再有1。下题中,题面的3个1排除了绿圈中1的可能性,那么灰色小宫中的1只能出现在五角星★位置。

排除法

把行、列、小宫结合起来,能显著提升排除法的威力。如下面这题,从题面中最多的数字7入手,通过题面已有的6个7的位置(绿圈),排除冲突的位置,可以迅速推演没有7的小宫中7的位置(红圈),把剩余3个7的位置全部确定。

排除法

综合运用和余数测试

将上述两种方法综合运用。如下题,E2为6,那么同行另两个小宫的6不能出现在E行,只能在D行和F行。由于最左边第6小宫的F行已经填满,故第6小宫的6只能出现在D行,即D7格。第5小宫的6则在F行。又由于4列和6列都已经出现6,则只能在第5列,即F5格。

综合运用

当出现某个小格出现多个可能解时把可能解记下来,后面再进行排除。如下面这题,在第2列和第8列中,候选数7都出现且只可能出现在行A、B行中,那就可以从A和B中的其他位置单元格中把7排除掉。B1格排除掉7后,可能解就只剩下1和8。

余数测试

了解了上面几种方法后,我们就可以开始解数独题了。一开始可以从单个数字开始找,在题面现有的数字中通过个数最多的数字入手,逐步展开。更多的技巧,可以参考“独·数之道”社区的解题技巧板块:http://www.sudokufans.org.cn/forums/topic/69/

推荐的数独网站和App

除了上面提到的“独·数之道”社区(http://www.sudokufans.org.cn/),再推荐一个网站——欧泊颗数独http://oubk.com/,里面有入门级、初级、中级、高级、骨灰级等各种难易程度的练习题,还可以关注oubk微信号,手机玩每日数独。

手机上还可以装一个数独游戏App。我安装的就叫Sudoku,只有几百K,占用空间不大,闲暇时根据时间长短选择不同难度解一题,既消遣时间又健脑益智。

数独游戏能够全面考验参与者解题的观察能力和推理能力,玩法简单,但能有效训练头脑逻辑思维能力和专注度。来吧,就从刚才的一个例子入手,先玩一题吧。计时开始:

相关文章

  • 解数独

    编写一个程序,通过已填充的空格来解决数独问题。 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次...

  • 8个步骤教你用Python解数独!(内含源码)

    前言 利用Python来解数独~~~起因大概是:自己解数独实在是太费劲了!!! 代码效果展示 所需工具 pytho...

  • 解数独算法

    昨天在Ubuntu18.04上打开自带的数独游戏,宿舍几个人一起玩了很久,今天整理了一下玩的过程,研究出算法并写成...

  • 解数独(sudouku)

    C++实现 实例 “芬兰数学家因卡拉花费3个月设计出了世界上迄今难度最大的数独游戏,而且它只有一个答案。因卡拉说只...

  • kotlin解数独

    kotlin 解数独,“容易”、“初级”均已解开,“高级”尚未测试,“高级+”没解开 数独链接:https://w...

  • 自动解数独

    直接上代码

  • C++解数独

    大概是把网上找到的代码稍微改了一下,记不清了= = 代码 测试用例 1 0 3 0 0 0 5 0 90 0 2 ...

  • Python 解数独(Sudoku)

    闲来有了用python解数独的想法,但由于对复杂些的算法仍是一窍不通,最终算是用简单算法实现了出来。 相关简介: ...

  • 巧解数独题

    最近,在我们 XXX 中心小学的“数学新思维”兴趣班上,我学到了一种新的数学游戏——数独。我觉得很好玩,爸爸就给我...

  • 37. 解数独

    自己解法 这个题因为刚做完上个题,知道要判断行、列和子九宫格不能有重复的元素,因为空白格只能一个一个去试,所以也能...

网友评论

    本文标题:3分钟了解数独

    本文链接:https://www.haomeiwen.com/subject/ahgpnttx.html