请先阅读我的上一篇文章
这篇文章是上篇的实战训练。
好了,我先给出要做的数独题目
还记得上篇文章讲的,一个数独的解决顺序么
先看已知个数最多的那个数字,在这个里面是 4,但有 7 个 4 了,另外两个还排除不出来,那就先标记上吧,把所有的数字都看一遍,用宫内排除法,还是可以填不少数字的。我一般的习惯是,已知个数最多的那个数字一定会做标记,宫内排除能填上数字的,也先做标记。
结果如下图
接下来应该看行列排除,我看了这个里面数字比较多的行列,发现排除不了什么,我放弃了行列排除,接着看区块排除法
区块排除比较容易找的地方在某一个宫里面,某行或者某列已经有三个数字了,那么一旦旁边的某行或者某列排除掉一个数字,这个数字就只能在剩下的那一行或者列里面,形成了区块。
看下图,B3 的 6 应该填在哪?
B6 里面 C8 已经有三个数字了,B9 里面这个 6 让 B6 的 6 只能处于 C9,形成了一个区块,那么 B3 里面 C9 不能有 6,C7 也被排除了,R3C8 也没法填,那么 6 就只能在 R2C8
我再画个图让你们看得清楚一点
好了,我们接着往下,C8 已经只有 2 和 5 没有填出来了,我们看看能不能解决掉
观察 B1,里面 R2 也有三个数,R1 不能有 2,所以 2 都在 R3,这样 C8 的 R3 不能是 2,那么就剩下 5 了,剩下的那个就是 2,这个地方我就不放分析图了,你们可以自己看一下。
填完后结果如下图
接下来,我没找到可以排除的地方了,我把所有的候选数都填了上去。很恐怖的一张图,新手估计要头大了,我自己也头大了,不就是个中等难度题目么,怎么这么麻烦了。
好了,不开玩笑了,填完后我有仔细看了一下每一行和每一列,看看是不是漏掉了区块排除相关的东西。
发现 R5 所有的 6 都在 B5 里面,R5C46 这两个格子,既然这一行 6 只能在这两个格子,那么 B5 其他的 6 都可以删掉了。重点理解一下这个地方,某一行或者某一列的某个数字只在某一宫里面,那么这个宫里面其他位置的这个数字可以删除。
对于我们这个题目,就是把这两个 6 当成一个区块,做了一次宫内排除。
OK,删掉后现在是这样的
刚删掉了好多 6,所以接下来重点就是看 6 的位置。
观察 C5,刚刚我们把 R4C5 和 R6C5 的 6 排除了,R2C5 本来就排除掉了,C5 里面只有 R8C5 可以填入 6 了。
填了一个 6,发现了解决了好多问题,我接着把 6 填完。
好,现在我们继续,B6 只有一个 7 了,那么 R5C7 就是 7,填了一个 7 就能填出第二个,接着往下,把 7 都填好
如下图
填完后,发现 B5 只有一个 4 了,4 本来就是我们这个数独最多的已知数,终于可以填出来了,然后 B4 也只有一个 5,把 5 也填完
这个时候好像没有某一行列宫只有一个数可以直接填了。
我们现在能非常明显的看到 C6 有一组 23 数对,回忆一下数对的作用,虽然我不知道 23 具体的位置在哪,但我这两个格子已经把 23 占了,可以删到 C6 其他格子的 23
删除完后的图
这幅图,C5 只有一个 3 可以填入,填完这个 3 后,这个数独就到了看格子里面剩什么候选数填什么候选数的时候了。(如果数独 App 有自动删除候选数功能的话,你直接填入就行了,如果没有的话,你填入一个数字,删掉和他相关的候选数)
最终我们解出了这个数独
好了,这个数独的讲完了。用到的所有方法,在上一篇的文章中已经都讲了,这篇就是用实例来让你更加深入理解这些方法。
对了候选数可能上一篇没怎么讲,我解释一下
候选数就是某一个格子可以填入的数字,用来做笔记,好处是你做过一次排除后,后面不需要重复去看了,只需要看你的候选数还有什么就行。很多 App 都有自动删除候选数功能,就是当和这个候选有关的格子填入了你有得候选数,这个候选数就会删掉,这样你最终只需要看还剩什么候选数,填什么候选数就行。如果没有自动删除功能的 App,或者你是用纸和笔来做数独的话,你需要自己去擦掉候选数中已经用掉的数字。
最后,这个数独题目是我自己开发 App 的中等难度第一关
如果你是 iOS 系统,可以下载我的 App,再把这一关做一次,不要看上面的东西。
或者去 Appstore 搜索 禅数独
如果你是 Android 系统,你也可以下载一个数独 App 去做它里面前两个难度的题目,一定可以用这些方法解决出来的。
下一篇文章,我会重点讲数对的用法。