只用两天,我和女儿成为了数独高手

文摘   2024-09-20 08:09   北京  

爱贝睿编辑推荐

经常有家长问,如何帮助孩子学好数学?这个问题,一两句话还真回答不清楚。不妨换个角度去思考:你希望孩子通过学习数学,收获什么能力?
数学不仅仅是算数,会巧算并不重要,更重要的是逻辑推理的能力。
因此,加强孩子逻辑推理方面的训练,才是关键。
玩数独,其实是一个特别好的方式。既能锻炼逻辑思维,又增强数感与专注力,效益显著。
如果你对数独有兴趣,或者想用玩游戏的方式提高孩子的数学能力,这篇文章总结了玩数独的亲子经验,一定不能错过~
我的大女儿艾莎很喜欢玩数独游戏,于是我花了两天时间学习B站上各种专业教学视频,什么X-Wing, Chain,多宝鱼,各种神奇的策略,我觉得太复杂了,艾莎掌握起来需要太长时间。
于是,我去搜索了一番,找到了一篇来自美国数学家的神奇论文,包含一个简洁而优雅的数独解题策略。仔细研究后发现,给这个策略打个小小的补丁,做些改进,就变得非常通用,可解决一切数独难题。
本文分为三个部分:先对数独做个简介,帮没接触过这款神奇数学游戏的读者扫个盲;然后详细介绍了我和大女儿艾莎的解题策略;最后基于真实的数独题目,详细讲解了我的策略是如何综合运用的。

数独简介

数独的起源,可以追溯到瑞士数学家欧拉(Leonhard Euler)提出的数学概念:拉丁方块(Latin Squares)。

拉丁方块是一种由不重复的符号(一般是数字)填充n x n正方形网格。其每一行和每一列,都包含n种不同的符号,并且每个符号刚好出现一次。
在9 x 9 欧拉方块的基础上,美国自由拼图发明者Howard Garns创造了Sudoku。在每行每列必须包含1到9且不重复的基础上,他增加了一条规则:把整个9 x 9 网格分成 9 个 3 x 3 的小网格,称为宫,要求每个宫里也包含1-9,并且不重复。
1979年,Howard Garns把这个新的游戏规则,发表在一本美国的数学杂志上。不久之后,它在日本受到了广泛的欢迎,并由日本出版商以“数独”为名进行推广,成为一种流行的游戏。
数独的基本玩法是:填充一个9×9的网格,使得每一行、每一列以及每一宫(3×3的子网格)内,都包含1到9的数字,且数字不能重复。这种规则既简单又具有挑战性,使得数独成为全球范围内受欢迎的智力游戏。
如上图书上的9 x 9 网格,填充了81个数字,每一格的数字都在1-9之间,并且每一行,每一列,每一宫里的9个数字都不重复。

我和女儿的数独绝招

在著名的数独在线比赛网站Sudoku.com上,数独的题目分为6个难度:简单,中等,困难,专家,大师,极限。我用了两天时间,基于美国数学家的一篇关于数独的论文(点击文末的“阅读原文”可下载PDF, 标题是:A Pencil-and-Paper Algorithm for Solving Sudoku Puzzles),打上了自己的补丁,最终形成了一套行之有效的策略,经过反复验证,能够在一小时左右解开“极限”级别的数独题目。

整个方法的核心逻辑是:

1 . 标记每个空白格子上可能出现的数字

首先,根据数独的规则,在每个空白格子上标记可能出现的数字。这一步至关重要!因为,如果这一步粗心写错,后来填满多半个网格后,会突然发现冲突,这时候完全不知道自己哪里错了,只能忍痛放弃,从头再来。
我是怎么避免粗心的?答案是我和大女儿艾莎一起玩,填写的时候我们两个人的答案一样才算正确。在第三部分的那个题目,我一开始全都是自己填的,但让艾莎帮我检查,发现了两个严重的错误。要不是她,这篇文章今天就发不出来了。
全填满后,整个9 x 9 的网格大概长这样:

2 . 正式开始解题

打好了基础之后,可重复下列步骤,直到所有方块中的数字都确定。
2.1 寻找数字的唯一归属格
搜寻所有空白格,找出在每一行、每一列或每一宫内,只出现一次的数字,把这个数字填充到该空白格中。
比如在下图的第三宫(右上角的3 x 3 小网格)中,有6个空白格,分别标记有:2378, 279, 2379, 2349, 2789, 289,其中4这个数字只出现在了2349这一格,所以4只能填这里。

2.2 寻找抢占集
抢占集,就是这样的一组n个空白格:它们属于同一行(或同一列,同一宫),把上面标记的数字全部放在一起并去掉重复,刚好有n个数字。
在这种情况下,这n个空白格只能包含这n个数字,且不能重复,于是,在n个空白格所属的这一行,这n个数字也只能出现在这n个空白格中,不可能出现在其他的位置。于是我们可以做什么呢?
当然是,把这n个数字,从同一行的其他空白格的标记中,划掉。
例如在下图中,第一行最左边的三格,它们属于同一行,并且形成了一个包含三个空白格的抢占集,里边的数字是123。于是,我们把第一行第8个格子里标记的238划掉了23,只剩下了8。
此外,这三格还同属于第1宫,也就是左上角的小正方形,一个3 x 3的网格。于是,同一宫里的357, 3579, 25679这三个空白格,也可以把123划掉,变成了57, 579, 5679。
注意,这个抢占集只属于同一行和同一宫,但不属于同一列。所以除了第一行和第一宫的空白格,其他所有的格子的不受影响,其中的123不可以被划掉。

2.3 填充标记唯一数字的空白格,并链式更新空白格标记
根据修改后的标记,填充所有仅剩下唯一数字的空白格,并更新其对应行、列、宫里其他空白格的标记。
循环进行,直到没有网格可填充,也没有标记可修改。
然后回到第1步,重新寻找每个数字的唯一归属格。
例如在上图中,第1行第8格只剩一个数字8后,就应当把8填进去,接下来更新第1行,第8列,以及第3宫中对应的标记,把8划掉。
把上图修改后,得到下图,注意绿色的线,划掉了6个格子里的8:

真实案例综合讲解

1.为空白格加上标记,并寻找行内,列内,宫内的唯一数字,进行填充。

2.找到12,123,23 抢占集,58,58抢占集,以及29、29抢占集,把其对应的宫,行,列内其他的对应数字删掉。比如,12,123,23 抢占集属于第1行和第1宫,所以第1行剩下的6格,以及第1宫剩下的6格,如果标注了1或2或3,就可以划掉,如下图。

3.找到29,29抢占集,所以在第5宫和第4列中,划掉其他空白格标记的2和9。

4.找到了57,79,59抢占集,和29,29抢占集,所以在第1列和第6宫,删掉了空白格标记中相应的数字。

5.找到了58,56,68抢占集,删除了第5行其他单元格中的5。顺带发现了之前漏掉的,标记中只有9的空白格,位于第9行第6列。

6.艾莎找到了左边 的579,579,57抢占格,以及第3列,第6行,第7宫中单独的数字4。划掉标记中相应的数字和在,我在第5行第3列收获了一个单独的2。

7.接下来,我每填充一个格子,就出现了新的只有一个数字的格子,循环很多次后,我填完了所有数字,答案如下图左边所示。

数独,是我和艾莎的亲子游戏之一。我们还有很多好玩的游戏,后续我会写文章分享。◈

作者:竹间漪


小 爱 

亲子互动游戏,提升孩子能力的同时,还能促进亲子关系的发展。你还想了解哪些方面的亲子游戏?欢迎留言给我们~

更多精彩文章请戳:

👉 父母的爱,也可能是束缚:警惕过度保护的七个迹象

👉 你若积极看待失败,孩子会更聪明(只要做到这两点)

👉 这些你信以为真的育儿「脑科学」都是骗人的,看看你中了几条

分享

收藏

点赞

在看


爱贝睿科学早教
0-6岁儿童早期教育专家
 最新文章