数独的解法与技巧

发布时间:2013-03-04 23:29:21

数独的直观式解题技巧

直观法概说

前言

数独这个数字解谜游戏,完全不必要用到算术!会用到的只是推理与逻辑。刚开始接触数独时,即使是只 须用到"基础摒除法""唯一解法"技巧的简易级谜题,就已可让我们焦头烂额了,但是随着我们深陷数独 迷人世界之后,这类简易级的数独谜题必定在短时间内难再使我们获得征服的满足。于是,当我们逐步深入 、进阶到更难的游戏后,我们将会需要发展出更多的解谜技巧。虽然最好的技巧便是我们自己发现的窍门, 这样我们很容易就能记住它们,运用自如,不需要别人来耳提面命。但是如果完全不去观摩学习他人发展 出来的技巧,而全靠自己摸索,那将是一个非常坚苦的挑战,也不是正确的学习之道! 所以让我们一齐来探讨数独的解谜方法吧!

数独的解谜技巧,刚开始发展时,以直观法为主,对于初入门的玩家来说,这也是一般人 较容易理解、接受的方法,对于一般报章杂志及大众化网站上的数独谜题而言,如果能灵活直观法的各项 法则,通常已游刃有余。

直观法详说

直观法的特性:

1. 不需任何辅助工具就可应用。所以要玩报章杂志上的数独谜题时,只要有一枝笔就可以开始了, 有人会说:可能需要橡皮擦吧?答案是:不用!只要你把握数独游戏的填制原则:绝不猜测。灵活运用 本站所介绍的直观填制法,确实可以不必使用橡皮擦。

2. 从接到数独谜题的那一刻起就可以立即开始解题。

3. 初学者或没有计算机辅助时的首要解题方法。

4. 相对而言,能解出的谜题较简单。

直观法的主要的技巧:

5. 基础摒除法

6. 唯一解法

7. 区块摒除法

8. 唯余解法

9. 单元摒除法

10. 矩形摒除法

11. 余数测试法

基础摒除法

前言

对第一次接触数独游戏,接受了 1 9 的数字在每一行、每一列、每一个九宫格都只能出现一次的规则后, 开始要解题的玩家来说,基础摒除法绝对是他第一个想到及使用的方法,十分的自然、也十分的简易。

如果能够细心、系统化的运用基础摒除法,一般报章杂志或较大众化的数独网站上的数独谜题几乎全部可解出来。 只不过大部分的玩家都不知如何系统化的运用基础摒除法罢了!

基础摒除法虽然简单,但在实际应用时,仍然可分成三个部分:

1. 行摒除:因为同一行不能有两个相同的数字,所以当某个数字已在某行中出现时,该行再填入该数字的可能性 就应该被摒除掉。

2. 列摒除:因为同一列不能有两个相同的数字,所以当某个数字已在某列中出现时,该列再填入该数字的可能性 就应该被摒除掉。

3. 九宫格摒除:因为同一个九宫格不能有两个相同的数字,所以当某个数字已在某个九宫格中出现时, 该九宫格再填入该数字的可能性就应该被摒除掉。

在运用基础摒除法来寻找解的过程中,其实也可分为三个部分:

4. 寻找九宫格摒除解:找到了某数在某一个九宫格可填入的位置只余一个的情形;意即找到了 该数在该九宫格中的填入位置。

5. 寻找列摒除解:找到了某数在某列可填入的位置只余一个的情形;意即找到了该数在该列中的填入位置。

6. 寻找行摒除解:找到了某数在某行可填入的位置只余一个的情形;意即找到了该数在该行中的填入位置。

不过不要说是初入门者,即使是很多未接受过本讯息者,也常常会遗漏了行、列摒除解的寻找。 对一些粗心的玩家来说,即使是九宫格摒除解也常被跳着做,所以解起题来就会感到不是十分顺手。

九宫格摒除解的寻找

九宫格摒除解的系统寻找是由数字 1 开始一直到数字 9 ,周而复始, 直到解完全题或无解时为止;每个数字又需从上左九宫格起,直到下右九宫格,周而复始, 同样要不断重复到解完全题或无解时为止。

< 1>

< 1 >的解题为例:先从数字 1 开始,并由上左九宫格起寻找九宫格摒除解,会影响上左九宫格的数字, 一定存在第 1 列~第 3 列以及第 1 行~第 3 行如< 2 >的绿色区域。

< 2>

本区域已存在的数字 1 共有两个,它们分别存在 (2, 9) (5, 1);其中 (2, 9) 数字 1 的列摒除, 将摒除第 2 列其它宫格再填入数字 1 的可能,因为依照规则每一列只能有一个数字 1,如果再在本列 填入数字 1,那么本列就会有两个 1 了。同理,(5, 1) 数字 1 的行摒除,将摒除第 1 行其它宫格再 填入数字 1 的可能,其示意图如< 3>

< 3>

对上左九宫格的摒除仅能到此地步,我们可以很容易的发现:本九宫中还有 3 个宫格不在被摒除的区域中, 意即:这 3 个宫格都仍有可能填入数字 1,依不可猜测的原则,本九宫格暂时不予处理。

接下来我们要尝试在上中九宫格寻找是否有九宫格摒除解 1:会影响上中九宫格的数字,一定存在第 1 ~第 3 列以及第 4 行~第 6 行。本区域已存在的数字 1 共有 3 个,它们分别存在 (2, 9)(4, 6) (9, 5),其摒除的范围示意图如< 4>

< 4>

同样的,我们可以很容易的发现:本九宫中还有 2 个宫格不在被摒除的区域中, 意即:这 2 个宫格都仍有可能填入数字 1,依不可猜测的原则,本九宫格一样暂时不予处理。

接下来的上右、中左、中央九宫格都已有数字 1 了,所以不必再找数字 1 该填入的宫格。

所以现在需要处理的九宫格轮到了中右九宫格,依上法对此九宫格进行的摒除示意图如 < 5>

< 5>

我们可以很容易的发现:本九宫中只剩宫格 (6, 8) 不在被摒除的区域中, 意即:在这个九宫格中只剩这个宫格仍有可能填入数字 1,所以本九宫格的数字 1 就只能填到这里了; 这时我们称: (6, 8) 有九宫格摒除解 1

在一般的解题技巧教导中(也包含尤怪之家先前的作品),把前面的徒劳寻找都省略不提,直接就告诉玩家: (6, 8) 有九宫格摒除解 1。当然这是为了篇幅考量,把全部过程都写出来将多出很多篇幅,但也将造成 初学者的挫折感,他们会以为计算机或已入门者的功力实在太高强了,一眼就能看出解在哪里!自己却很笨, 找了老半天才找到一个解;其实速度可能有差,方法及过程则是一样的。

重复前面的方法,我们可以发现数字 12 都没法找到九宫格摒除解了。轮到数字 3 时,也要一直到 下左九宫格才能找到 (8, 2) 有九宫格摒除解 3 < 6>、然后在 (9, 9) 有九宫格摒除解 3 < 7>

< 6>

< 7>

在这里要提醒初学者注意的是:虽然我们从上左九宫格开始,到现在的下右九宫格,已将所有的九宫格都 找过一遍了!但因为中间曾经在某些宫格填入我们找到的数字解,所以一定要再从头找一遍,否则会让 我们遗漏掉一些可以马上找到的解。例如我们又可找到在 (6, 1) 有九宫格摒除解 3 < 8> 然后在 (5, 6) 也有九宫格摒除解 3 < 9>

< 8>

< 9>

同样的,因为在本循环又曾找到一些解,所以还要再找一次,确定已没法找到九宫格摒除解 3 了,才能 换成数字 4 继续寻找下去。

在以上的过程中,为了标示已存在的数字对九宫格的摒除状况,特别用图示的方式呈现,有些玩家就发出了 这样的疑问:在解报章杂志上的数独题目时,是否要用铅笔在谜题上画线,以找出摒除解呢?其实不必啦! 玩家们只要稍微练习一下,至多只要空手在谜题上比划比划,就可以看出哪些宫格已被摒除,进而找出摒除解 的。

行、列摒除解的寻找

和九宫格摒除解的寻找一样,列摒除解的系统寻找是由数字 1 开始一直到数字 9 ,周而复始,直到解完全题或 无解时为止;每个数字又需从第 1 列起,直到第 9 列止,周而复始,同样要不断重复到解完全题或无解时为止。 同理,行摒除解的系统寻找也是一样的作法。

大部分的人都会十分习惯应用九宫格摒除解的寻找,而完全忽略了行、列摒除解的寻找;对某些题目而言或许 可行,但对某些题目而言,不运用此二法可是行不通的哦!

大家已有九宫格摒除解的寻找经验了,所以尤怪就不再把无效的找寻过程秀出来,而直接展示成功的例子啦, 不过直接秀出来又太没意思了,就当做是做个小小的测验吧,以下的范例都先展示目前题型,并告诉大家在 某个宫格有何解,请大家找找看,如果找到了,要核对摒除示意图,或者找不到,要参考摒除示意图,请将 鼠标光标移到图块上就可显现啦!

< 10 >中,(5, 5) 有一个摒除解 7,你可以看出来吗?

< 10>

< 11 >中,(9, 1) 有一个摒除解 3,你可以看出来吗?

< 11>

< 12 >中,(7, 1) 有一个摒除解 1,你可以看出来吗?

< 12>

< 13 >中,(6, 4) 有一个摒除解 6,你可以看出来吗?

< 13>

< 14 >中,(1, 3) 有一个摒除解 7,你可以看出来吗?

< 13>

唯一解法

前言

直观法的根本是基础摒除法,唯一解法其实只可算是基础摒除法的特例,只因其成立条件十分特殊明确, 可以几乎不花脑筋就填出解来,所以特别独立为一法,但有些人是完全不加理会的。

唯一解详说

数独谜题中的某一个宫格因为所处的列、行或九宫格已填入数字的宫格达到 8 个时,那么这个宫格所能填入 的数字,就只剩下那个还没出现过的数字了。

当某列已填入数字的宫格达到 8 个时,所剩宫格唯一能填入的数字就叫做列唯一解; 当某行已填入数字的宫格达到 8 个时,所剩宫格唯一能填入的数字就叫做行唯一解; 当某个九宫格已填入数字的宫格达到 8 个时,所剩宫格唯一能填入的数字就叫做九宫格唯一解。

< 1> (5, 9)出现列唯一解 6

< 1>是出现列唯一解的例子,请看第 5 列,由 (5,1) (5,8) 都已填入数字了,只剩(5,9)还是 空白,此时(5,9)中应填入的数字,当然就是第 5 列中还没出现过的数字了!请一个个数字核对一下, 哦!是数字 6 还没出现过,所以(5,9) 中该填入的数字就是数字 6 了,这时我们说:(5, 9)有列唯一解 6

< 2> (7, 1)出现行唯一解 9

< 2>是出现行唯一解的例子,请看第 1 行,除了宫格 (7,1) 外都已填入数字了,此时(7,1)中应填入的数字, 当然就是第 1 行中还没出现过的数字 9 了!这时我们说:(7, 1)有行唯一解 9

< 3> (7, 2)出现九宫格唯一解 3

< 3>是出现九宫格唯一解的例子,请看下左九宫格,除了宫格 (7,2) 外都已填入数字了,此时(7,2) 中应填入的数字,当然就是下左九宫格中还没出现过的数字 3 了!这时我们说:(7, 2)有九宫格唯一解 3

仔细想想:以上的列唯一解其实也可看成是列摒除解、行唯一解也可看成是行摒除解、 九宫格唯一解也可看成是九宫格摒除解,不是吗?不过 9 个宫格已填了 8 个,这样的情况太特殊、太容易辨认了, 所以独立出来也无可厚非啦!

区块摒除法

前言

区块摒除法虽属于进阶的技巧,但已入门的玩家在解题时可以很容易的配合着基础摒除法使用,增加不少 找到解的机会,将感觉顺手多了。所以即使是最简易级的题目,已入门的玩家一样可在解题时应用此法, 并非在基础摒除法已找不到解时才让此法上阵。本网页中的很多例子,如果坚持使用基础摒除法,其实 仍可找到其它数字解,但因机缘凑巧,恰可用上区块摒除法找到解,所以仍拿来当做例子啦!

什么是区块呢?

1. 对列而言,就是分属三个不同九宫格的部分。在下图中,我们分别用不同的颜色来标示列的三个区块:

2. 对行而言,也是分属三个不同九宫格的部分。在下图中,我们分别用不同的颜色来标示行的三个区块:

3. 对九宫格而言,就是分属三个不同列或三个不同行的部分。在下图中, 我们分别用不同的颜色来标示九宫格的三个区块:

为了说明及学习的方便,尤怪将区块摒除法分为 4 个不同的型式,但在实际应用时,即使玩家不知此分类, 也可以很容易的顺着区块的所在及方向而做出正确的摒除。

4. 九宫格对行的区块摒除:某数字在九宫格中的可填位置仅存在其中一个区块时,因为某数一定会在本区块, 所以包含该区块的行,可将数字填入另两个区块的可能性将被摒除。

5. 九宫格对列的区块摒除。某数字在九宫格中的可填位置仅存在其中一个区块时,因为某数一定会在本区块, 所以包含该区块的列,可将数字填入另两个区块的可能性将被摒除。

6. 行对九宫格的区块摒除。某数字在行中的可填位置仅存在其中一个区块时,因为某数一定会在本区块, 所以包含该区块的九宫格,可将数字填入另两个区块的可能性将被摒除。

7. 列对九宫格的区块摒除。某数字在列中的可填位置仅存在其中一个区块时,因为某数一定会在本区块, 所以包含该区块的九宫格,可将数字填入另两个区块的可能性将被摒除。

区块摒除法虽属于进阶的技巧,但已入门的玩家在解题时可以很容易的配合着基础摒除法使用,增加不少 找到解的机会,将感觉顺手多了。所以即使是最简易级的题目,已入门的玩家一样可在解题时应用此法, 并非在基础摒除法已找不到解时才让此法上阵。本网页中的很多例子,如果坚持使用基础摒除法,其实 仍可找到其它数字解,但因机缘凑巧,恰可用上区块摒除法找到解,所以仍拿来当做例子啦!

九宫格对列、行的区块摒除

九宫格摒除解的系统寻找是由数字 1 开始一直到数字 9 ,周而复始, 直到解完全题或无解时为止;每个数字又需从上左九宫格起,直到下右九宫格,周而复始, 同样要不断重复到解完全题或无解时为止。

使用区块摒除法,只要在九宫格摒除解的系统寻找时,注意是否有区块摒除的成立条件即可,当区块摒除 的条件具备了,就等于多了一个摒除线,找到解的机会自然多了一点,将感觉顺手多了。例如在< 1>中, 如果不使用或不会使用区块摒除法,是找不到 1 的九宫格摒除解的,但如果用上了区块摒除法,将可找到 四个数字 1 的填入位置哦:

< 1>

< 1 >中:先从数字 1 开始寻找九宫格摒除解,当找到中左九宫格时,由于(3, 2)(4, 5)的摒除, 将使得数字 1 可填入的位置只剩下 (5, 1) (5, 3),因为每一个九宫格都必须填入数字 1,既然中左 九宫格的数字 1 一定会填在 (5, 1) (5, 3) 这个区块,那表示包含这个区块的第 5 列,其另两个 区块就不能填入数字 1 了,因为同一列中只能有一个数字 1,所以可将第 5 列另两个区块填入数字 1 可能性摒除。

< 2>

5 列的区块摒除,配合 (4, 5) (9, 7)的基础摒除,使得 (6, 8) 出现了中右九宫格摒除解了。

< 3>

只找到一个还不过瘾,当搜寻到下左九宫格时,由于(3, 2)(9, 7)的摒除,将使得数字 1 可填入的位置 只剩下 (7, 1) (7, 3),同理,因为每一个九宫格都必须填入数字 1,既然下左九宫格的数字 1 一定会 填在 (7, 1) (7, 3) 这个区块,那表示包含这个区块的第 7 列,其另两个区块就不能填入数字 1 了, 因为同一列中只能有一个数字 1,所以可将第 7 列另两个区块填入数字 1 的可能性摒除。

< 4>

7 列的区块摒除,配合 (4, 5) (9, 7)的基础摒除,使得 (8, 6) 出现了中下九宫格摒除解了。

< 5>

找到了 (6, 8) (8, 6) 两个摒除解之后,因谜面的数字已有改变,所以循例应回头再找一遍,相信大家一定 可以很容易的找到另两个九宫格摒除解:(1, 4)(2, 9)

九宫格对行的区块摒除和九宫格对列的区块摒除同理,只不过九宫格对列的区块摒除是数字仅出现在九宫格 的横向区块,所以受到影响的就是列;而九宫格对行的区块摒除是数字仅出现在九宫格的纵向区块,所以受 到影响的就变成是行而已。

< 6> 是一个九宫格对行的区块摒除之例子。你可以看出下左九宫格的数字 9 应该填在什么位置吗?

< 6>

< 6 >中:由于(5, 8)的摒除,使得数字 9 在中左九宫格可填入的位置只剩下 (4, 3) (6, 3) 因为每一个九宫格都必须有数字 9,既然中左九宫格的数字 9 一定会填在 (4, 3) (6, 3) 这个区块, 那表示包含这个区块的第 3 行,其另两个区块就不能填入数字 9 了,因为同一行中也只能有一个数字 9 所以可将第 3 行另两个区块填入数字 9 的可能性摒除。

< 7>

3 行的区块摒除,配合 (2, 2)(7, 6) (9, 9)的基础摒除,使得 (8, 1) 出现了下左九宫格摒除解 9 了。

< 8>

看过了以上的例子后,首先要提醒大家,前面已提过区块摒除需机缘凑巧,并非随手可得哦!大部分的时候, 虽然发现了区块摒除的条件,但却是空包弹,一样找不到摒除解!例如:在 < 1 > 的上右九宫格中, 由于 (3, 2)(9, 7) 的摒除,使得上右九宫格的数字 1 只出现在 (1, 9) (2, 9),符合区块摒除的条件, 但配合现有的数字 1 做摒除后,并无法找到任何摒除解。所以当找到区块摒除的条件时,并不必太高兴!

< 9>

行、列对九宫格的区块摒除

一般而言,九宫格对行、列的区块摒除是容易被发现和运用的,因为一般人常把注意力放在九宫格摒除解的 寻找上,所以找到的自然是九宫格对行、列的区块摒除条件;而行、列对九宫格的区块摒除成立条件需配合 行、列摒除解的寻找,所以常被疏忽了。不过尤怪认为:解题本以增加生活乐趣为上,如果可用简单的方法解题, 何必强要使用困难的方法呢?

配合一般人不到不得已不去寻找行、列摒除解的心态,下面这个例子和前面的例子就不同了, 如果不使用或不会使用行、列对九宫格的区块摒除,是找不到 8 的行摒除解的,请先解解看, 然后再看后面的说明:

< 10>

在本例中:由于(5, 5)(7, 7)的摒除,使得数字 8 在第 2 列可填入的位置只剩下 (2, 2) (2, 3) 因为每一列都必须有数字 8,既然第 2 列的数字 8 一定会填在 (2, 1) (2, 3) 这个区块, 那表示包含这个区块的上左九宫格,其另两个区块就不能填入数字 8 了,因为同一个九宫格中也只能有一个数字 8 所以可将上左九宫格另两个区块填入数字 8 的可能性摒除。

< 11>

于是上左九宫格的区块摒除,配合 (5, 5)(7, 7)的基础摒除,使得 (6, 1) 出现了第 1 行摒除解 8 了。

< 12>

下面这个例子更困难一点,必须先找到九宫格对行、列的区块摒除,然后再利用行、列对九宫格的区块摒除, 来找到 8 的行摒除解,请先解解看,给自己一点挑战,然后再看后面的说明:

< 13>

在本例中:由于(3, 6)(7, 1)的摒除,使得数字 8 在上左九宫格中可填入的位置只剩下 (1, 2) (2, 2) 符合了九宫格对行的区块摒除之条件,所以可把第 2 行其它区块填入数字 8 的可能性摒除掉。

< 14>

接下来:利用上左九宫格对第 2 行的区块摒除,并配合(7, 1)(9, 5)的基础行摒除, 使得数字 8 在第 5 列中可填入的位置只剩下 (5, 8) (5, 9) 符合了列对九宫格的区块摒除之条件,所以可把中右九宫格其它区块填入数字 8 的可能性摒除掉。

< 15>

最后,利用第 5 列对中右上左九宫格的区块摒除,并配合(7, 1)(9, 5)的基础列摒除, 使得数字 8 在第 7 行中可填入的位置只剩下一个,意即找到第 7 行的行摒除解 8 了。

< 16>

多重区块摒除

多重区块摒除是必需同时使用 2 个以上的区块摒除才能找到解的情况。下面这个例子就必需同时运用一个 九宫格对列的区块摒除及列对九宫格的区块摒除,才能找到 5 的行摒除解。请先解解看,给自己一点挑战, 然后再看后面的说明:

< 17>

在本例中:由于(2, 5)(4, 7)的摒除,使得数字 5 在中央九宫格中可填入的位置只剩下 (5, 4) (5, 6) 符合了九宫格对列的区块摒除之条件,所以可把第 5 列其它区块填入数字 5 的可能性摒除掉。

< 18>

同时:由于(2, 5)(4, 7)(3, 9)的行摒除,使得数字 5 在第 9 列中可填入的位置只剩下 (9, 1) (9, 3) 符合了列对九宫格的区块摒除之条件,所以可把下左九宫格其它区块填入数字 5 的可能性摒除掉。

< 19>

于是,利用第 5 列及下左九宫格的区块摒除,并配合(2, 5)(4, 7)(3, 9)的基础列摒除, 使得数字 5 在第 2 行中可填入的位置只剩下一个,意即找到第 2 行的行摒除解 5 了。

< 20>

下面这个例子就更有趣了,请看< 21 >,目前谜面上一个数字 7 都没有,但尤怪要说: 在上左九宫格有一个九宫格摒除解 7,你是否能找出来呢?

< 21>

首先,因为上右九宫格的数字 7 只能填在 (1, 7)(1, 9) 这个区块,所以可以用九宫格对列的区块摒除, 将第 1 列其它区块填入数字 7 的可能性摒除掉。

< 22>

当第一列的 (1, 1)(1, 6) 填入数字 7 的可能性被摒除之后,因为上中九宫格的数字 7 就只能填在 (3, 4)(3, 6) 这个区块,所以也可以用九宫格对列的区块摒除,将第 3 列其它区块填入数字 7 可能性摒除掉。于是,同时利用第 1 列及第 5 列的区块摒除,使得数字 7 在上左九宫格中可填入的 位置只剩下一个,意即找到上左九宫格的九宫格摒除解 7 了。

< 23>

唯余解法

前言

唯余解法的原理十分简单,但是在实际的解题中,非常不容易辨认。

由于唯余解非常不容易辨认,所以一般的报章杂志及较大众化的数独网站,通常会将需要用到唯余解法的数独谜题 归入较高的级别。但另一种以候选数法为分级根据的网站,则会把这类的谜题放到较低的级别中。

唯余解详说

数独谜题中的某一个宫格,因为所处的列、行及九宫格中,合计已出现过不同的 8 个数字,使得这个宫格所能填入 的数字,就只剩下那个还没出现过的数字时,我们称这个宫格有唯余解。

< 1> (8, 6)出现唯余解了

< 1>是出现唯余解的例子,请看 (8, 6)在的第 8 列,共出现了 281653 六个数字; 接下来再看 (8, 6) 所在的第 6 行,共有 249 三个数字; (8, 6) 所在的下中九宫格, 还包含了162 三个数字;所以 (8, 6) 所处的列、行及九宫格中,合计已出现过 12345689 8 个不同的数字;依照数独的填制规则,同一列、同一行及同一个九宫格中, 每一个数字都只能出现一次,所以 (8, 6) 就只能填入尚未出现过的数字 7 了;这时我们说: (8, 6) 有唯余解 7

< 2>

如果你学过候选数法,应该可以看出来:直观法中的唯一解法及唯余解法,在候选数法中就是最简易的唯一候选数法, 但在直观法中,这两种方法是有着很大不同的。唯一解法的判定一样十分简单,某行、某列或某个九宫格已被填了 8 格时,就是唯一解法;但唯余解法却十分难以辨认,< 2>中,使用基础摒除法已找不到解了,只好找寻唯余解, 而谜题中共有两个唯余解,请你找找看,看是否可以找到!

当你把鼠标移到图块上时,会显示出其中的一个:在 (1, 6) 有唯余解 3,另一个唯余解 5 则出现在在 (3, 1) 不容易找到吧!所以一般的报章杂志及较大众化的数独网站,通常会将需要用到唯余解法的数独谜题归入较高的级别。

单元摒除法

前言

单元摒除法和区块摒除法一样,虽属于进阶的技巧,但已入门的玩家在解题时,可以很容易的配合着 基础摒除法使用,以增加找到解的机会。所以即使是最简易级的题目,已入门的玩家 一样会在解题时应用此法,并非在基础摒除法已找不到解时才让此法上阵。本网页中的很多例子, 如果坚持使用基础摒除法,其实仍可找到其它数字解,但因机缘凑巧,恰可用上单元摒除法找到解, 所以仍拿来当做例子啦!

详解

使用单元摒除法,只要在九宫格摒除解的系统寻找时,注意是否有单元摒除的成立条件即可,当单元摒除 的条件具备了,就等于多了两个摒除线,找到解的机会自然多了一点。例如在< 1>中, 如果不使用或不会使用单元摒除法,是找不到 1 的九宫格摒除解的,但如果用上了单元摒除法,就可以 顺利的在中左九宫格找到数字 1 的填入位置哦:

< 1>

< 1 >中:由于(2, 7)(3, 4)的列摒除,使得数字 1 可填入上左九宫格的位置只剩下 (1, 2) (1, 3) 另外,由于(5, 5)(6, 8)的列摒除,使得数字 1 可填入中左九宫格的位置只剩下 (3, 2) (3, 3) 因为这四个宫格恰好在相同的两行上,所以:

1. 如果上左九宫格数字 1 填在第 2 行的 (1, 2),因为第 2 行只能有一个数字 1 所以中左九宫格的数字 1 就只能填到 (4, 3)

2. 如果上左九宫格数字 1 填在第 3 行的 (1, 3),因为第 3 行只能有一个数字 1 所以中左九宫格的数字 1 就只能填到 (4, 2)

不论哪一个状况产生,第 2 行及第 3 行的数字 1 都只能填在(1, 2)(1, 3)(4, 2) (4, 3)这四个位置 中的其中两个,不可能填到其它宫格去,所以可以将第 2 行及第 3 行其它宫格填入数字 1 的可能性摒除。

< 2>

于是运用第 2 行及第 3 行的单元摒除,配合 (8, 6) (9, 9)的基础列摒除, 使得 (7, 1) 出现了下左九宫格摒除解了。

< 3>

如果只看类似上题的范例,那么单元摒除法和后面要介绍的矩形摒除法倒底有何不同?有些时候,会困扰不少人。 所以下面这个范例特别找了一个不会和矩形摒除法混淆的例子,下次如果你也有以上困扰,再看一下这个范例 自可解疑了!

< 4>中,如果使用单元摒除法,就可以顺利的在下左九宫格找到数字 4 的填入位置哦!请先解解看, 给自己一点挑战,然后再看后面的说明:

< 4>

< 4 >中:由于(2, 6)(3, 7)的列摒除,使得数字 4 可填入上左九宫格的位置只剩下 (1, 1) (1, 3) 另外,由于(6, 5)的列摒除,使得数字 4 可填入中左九宫格的位置只剩下 (4, 1)(4, 3)(5, 1) (5, 3) 因为这 6 个宫格恰好集中在相同的两行上,所以:

3. 如果上左九宫格数字 4 填在第 1 行的 (1, 1),因为第 1 行只能有一个数字 4 所以中左九宫格的数字 4 就只能填到 (4, 3)(5, 3)

4. 如果上左九宫格数字 4 填在第 3 行的 (1, 3),因为第 3 行只能有一个数字 4 所以中左九宫格的数字 4 就只能填到 (4, 1)(5, 1)

不论哪一个状况产生,第 1 行及第 3 行的数字 4 都只能填在(1, 1)(1, 3)(4, 1)(4, 3)(5, 1) (5, 3) 6 个位置中的其中两个,不可能填到其它宫格去,所以可以将第 1 行及第 3 行其它宫格填入 数字 4 的可能性摒除。

< 5>

于是在运用第 1 行及第 3 行的单元摒除后,使得 (9, 2) 出现了下左九宫格摒除解了。

< 6>

矩形摒除法

前言

矩形摒除法这个进阶的技巧,除了到非不得已时,尤怪是不建议去运用的。它和区块摒除、单元摒除最大的差别为:

1. 在搜寻区块摒除及单元摒除是否成立的条件时,只需用到九宫格摒除解的判断,这是一般人在解题时最常运用的 方法,所以可以很容易的配合着基础摒除法使用,以增加找到解的机会。即使是最简易级的题目,已入门的玩家 一样会在解题时应用此法,并非在基础摒除法已找不到解时才让此法上阵。

2. 但在搜寻矩形摒除是否成立的条件时,一定要用到行摒除解或列摒除解的判断,这是一般人在解题时很少会去 运用的方法,所以很难配合着基础摒除法使用,以增加找到解的机会。

虽然矩形摒除法十分不容易运用,但是某些困难的数独谜题如果不使用这个进阶的技巧,是没办法解出来的, 所以虽然困难,还是看一看,学一学吧!你会发现:虽然不好运用,但其原理其实是蛮简明易懂的。

详解

< 1 >中,不论你使用基础摒除、区块摒除、唯一解、唯余解或单元摒除等各种直观式的解题法, 应该都没办法找到下一个解了。这时只好换用矩摒除上阵啦!

< 1>

< 1 >中:由于(3, 7)的摒除,使得数字 3 可填入第 3 行的位置只剩下 (1, 3) (8, 3) 而第 6 行的空格本来就只剩下两个--(1, 6) (8, 6),所以未填的数字 3 当然也只能在这里了! 因为这四个宫格恰好构成一个矩形的顶点,所以:

1. 如果第 3 行的数字 3 填在 (1, 3),因为第一列只能有一个数字 3,所以第 6 行的数字 3 只能填到 (8, 6)

2. 如果第 3 行的数字 3 填在 (8, 3),因为第八列只能有一个数字 3,所以第 6 行的数字 3 只能填到 (1, 6)

不论哪一个状况产生,第 1 列及第 8 列的数字 3 都只能填在(1, 3)(8, 3)(1, 6) (8, 6)这四个位置 中的其中两个对角位置,不可能填到其它宫格去,所以可以将第 1 列及第 8 列其它宫格填入数字 3 的可能性摒除。

< 2>

8 列的矩形摒除,配合 (3, 7)的基础摒除,使得 (7, 9) 出现了下右九宫格摒除解了。

< 3>

再看一个例子吧!在< 4 >中,同样的,不论你使用基础摒除、区块摒除、唯一解、唯余解或单元摒除等各种 直观式的解题法,应该都没办法找到下一个解了。这时只好换用矩摒除上阵啦!

< 4>

< 4 >中:由于(2, 9)的摒除,使得数字 9 可填入第 3 列的位置只剩下 (3, 1) (3, 5) 由于(6, 8)的摒除,使得数字 9 可填入第 4 列的位置只剩下 (4, 1) (4, 5) 因为这四个宫格恰好构成一个矩形的顶点,所以:

3. 如果第 3 列的数字 9 填在 (3, 1),因为第 1 行只能有一个数字 9,所以第 4 列的数字 9 只能填到 (4, 5)

4. 如果第 3 列的数字 9 填在 (3, 5),因为第 5 行只能有一个数字 9,所以第 4 列的数字 9 只能填到 (4, 1)

不论哪一个状况产生,第 1 行及第 5 行的数字 9 都只能填在(3, 1)(3, 5)(4, 1) (4, 5)这四个位置 中的其中两个对角位置,不可能填到其它宫格去,所以可以将第 1 行及第 5 行其它宫格填入数字 9 的可能性摒除。

< 5>

5 行的矩形摒除,使得 (9, 7) 出现了下中九宫格摒除解 9 了。

< 6>

多重摒除

和其它的摒除法一样,有些数独谜题是无法以单一摒除法得出解的,必须综合运用两种以上的摒除法才能顺利得到 下一个解,下面这个例子就是必须同时运用矩形摒除及区块摒除法才能在中央九宫格找到九宫格摒除解 1 的例子:

< 7>

由于 (9, 2) (4, 9) 的摒除,使得数字 1 可填入中左九宫格的位置只剩下 (5, 1) (5, 3) 构成了区块摒除的条件:

< 8>

同样由于 (9, 2) (4, 9) 的摒除,使得数字 1 可填入第 2 列的位置只剩下 (2, 5) (2, 8) 数字 1 可填入第 8 列的位置只剩下 (8, 5) (8, 8)。构成了矩形摒除的条件:

< 9>

运用前述第 5 列的区块摒除、第 5 行的矩形摒除,使得 (6, 4) 出现了中央九宫格摒除解 1 了。

< 10>

余数测试法

前言

如果您已是入门的玩家,对直观法的各式摒除法已有了相当的认识,请回想一下:是否常会忽略了 行摒除解、列摒除解的寻找,对于唯余解更是头大,拒之犹恐不及,必须等到将所有数字都搜寻一遍之后, 才会想到是否有行摒除解、列摒除解或唯余解,但又因不擅于快速找到唯余解,使得解题的时间拉得很长!

为了弥补以上所提及的盲点,采用余数测试法不失为一个有效的选择。

所谓余数测试法就是某一个单元(行、列或九宫格)待填的数字已降到 3 个以下时(有时以基础摒除加区块摒除、 单元摒除仍觉吃力时,仅 4 数时也可勉强进行,但成功机率较小),就以该单元所余待填的数字来 进行测试的方法。因为目标集中,各项摒除法可灵活运用,不致遗漏。

所以余数测试法其实不是一个新的摒除法,只是在寻找数字解时,由寻找某个数字的可填位置, 改换为寻找某个位置的可填数字而已。

详解

因为余数测试法通常仅在某一个单元(行、列或九宫格)待填的数字已降到 3 个以下时才使用, 所以解题初期还是以九宫格摒除解的系统搜寻进行解题。

< 1 > 是一个已进行一轮搜寻的数独谜题,如果仍以九宫格摒除解的系统搜寻进行解题,应该要 再由数字 1 开始,一直到 9,接着进行第二轮的系统搜寻工作。但因为已有第 146 行、 346 ....等多个单元的待填数字都已在 3 个以下,所以可以换余数测试上阵了。

< 1>

就先由第 1 行开始进行吧!待填数还剩 89 两数,因为 (9, 2) 已有数字 8 了,所以 8 不能再填到同个 单元的 (9, 1),只能填到 (5, 1)去;另一个待填数 9 就只能填在 (9, 1)了。

< 2>

接着测试第 4 行:待填数还剩 569 三数,因为会影响 (7, 4) 填数的第 7 列及下中九宫格只有一个 待填的数字 5,所以本宫格无法决定该填 6 9;同样的,(8, 4) (9, 4) 都无法决定该填何数。

类似第 4 行的经测试后找不到解的状况其实不少,玩家应有心理准备,不可认为余数测试是万灵丹,一定可 找到解。往后找不到解的单元,尤怪就不列出来了,以节省篇幅。

接着测试第 6 行:待填数一样还剩 569 三数,因为第 3 列已有数字 5 6 了,所以 (3, 6) 只能填入数字 9,而第 2 列已有一个数字 6 了,所以 (2, 6) 只能填入数字 5,而 (1, 6)就只能填入 6 了。

< 3>

测试第 3 列:待填数只剩 18 二数,因为第 8 行已有数字 8 了,所以 (3, 8) 只能填入数字 1,而数字 8 就只能填入 (3, 3) 了。

< 4>

测试第 4 列:待填数又是只剩 569 三数,因为第 9 行已有数字 5 6 了,所以 (4, 9) 只能填入数字 9,而中右九宫格已有数字 5 了,所以 (4, 8) 只能填入数字 6,而 (4, 5)就只能填入 5 了。

< 5>

像这不断测试下去,不难得出最终解 < 6>

< 6>

直观式解题法解简易级范例

概说

对大部分的数独初学者来说,什么叫做不用猜测,完全以逻辑方法得出解答,是最不容易理解且做到的事。 虽然我们已说明了直观式解题所常用的技巧,但要如何应用,可能仍有人不太明了!

运用网页为媒介的最大优势就是不受篇幅的限制,真的是想要怎么表达,就可以这么表达!既然有全题 解题示范的需求,尤怪就示范给大家看吧,不过,这只是示范哦,玩家的解题程序若和尤怪不同,并不表示 任何意义!只要能解题,采用何种方法其实并不是重点,只要求不可猜测就好!

解题实例

< 1>原始谜题

尤怪拿到数独谜题后,比较一丝不苟,均循序一一检视,以免产生遗漏,本题亦同。先由 1 开始检查, 发现没有可确认的填入点之后,开始检视数字 2,因为第 3 列及第 78 行都已有了数字 2,所以上右 九宫格的数字 2 只能填入(1, 9)


发现(1, 9)可填入 2

接着再检视数字 23 都没发现填入点,检查数字 4 时,因为第 45 列及第 2 行都已有了数字 4,所以中左 九宫格的数字 4 只能填入(4, 1)


发现(4, 1)可填入 4

检查数字 4 没发现填入点后,检查数字 5 时,因为第 17 行都已有了数字 5,以及上中九宫格的数字 5 使得(2, 4) (2, 6)宫格不得再填入 5,所以第 2 列的数字 5 只能填入(2, 2);同时因(1, 6)(8, 7) 这两个宫格的摒除作用,使得上右九宫格的数字 5 只能填入(3, 9)


发现(2, 2)(3, 9)可填入 5


发现(4, 8)(5, 4)可填入 5

开始检查数字 6


发现(4, 7)(9, 9)可填入 6


接下来可相继发现数字 6 应填在 (6, 3)(1, 1)(3, 6)(7, 4)

开始检查数字 7


发现(5, 7)(6, 5)可填入 7


接下来可相继发现数字 7 应填在 (1, 4)(3, 2)(9, 1)(8, 8)

开始检查数字 8,虽然只出现 3 8,但因空白宫格的减少,一下子就可发现好多处解:在第 5 列只能填在 (5, 1)、在第 8 列只能填在(8, 4)、在中右九宫格只能填在(6, 8)、在下左九宫格只能填在(9, 2)


发现(5, 1)(8, 4)(6, 8)(9, 2)可填入 8

检查数字 9 时,使用摒除法并无法找到填入点。(因为唯一解法要由数字 1 9 逐一检视是否出现, 使用上不像摒除法那么直观而简易,所以本例中虽然使用唯一解法可找到(2, 1)(4, 2)有唯一解 9 但因尤怪只在摒除法找不到解时才使用唯一解法,所以找不到填入点)所以又重由数字 1开始检视, 或许有人会问:「刚才不是已检查过了吗?」没错!但在那之后已填入了好多数字,所以盘面状况已 大不相同,检查结果也将不同了。果然,我们可发现数字 1 在第 1 行只能填在(7, 1)、在第 4 列只能填在(4, 4)


发现(7, 1)(4, 4)可填入 1


接下来可相继发现数字 1 应填在 (2, 6)(5, 3)(9, 7)(6, 9)

检查数字 2


可相继发现数字 2 应填在 (4, 5)(2, 4)(8, 6)(7, 3)

检查数字 3


可相继发现数字 3 应填在 (1, 3)(2, 7)(7, 8)(6, 2)(5, 6)(9, 5)

检查数字 4


可相继发现数字 4 应填在 (3, 3)(1, 7)(8, 9)(9, 6)

直观式解题法解中级题范例

概说

对大部分的数独初学者来说,什么叫做不用猜测,完全以逻辑方法得出解答,是最不容易理解且做到的事。 虽然我们已说明了直观式解题所常用的技巧,但要如何应用,可能仍有人不太明了!

运用网页为媒介的最大优势就是不受篇幅的限制,真的是想要怎么表达,就可以这么表达!既然有全题 解题示范的需求,尤怪就示范给大家看吧,不过,这只是示范哦,玩家的解题程序若和尤怪不同,并不表示 任何意义!只要能解题,采用何种方法其实并不是重点,只要求不可猜测就好!

解题实例

< 1>原始谜题

尤怪拿到数独谜题后,比较一丝不苟,均由数字 1 起循序一一检视,以免产生遗漏,本题亦同。先由 1 开始检查,发现上中九宫格的数字 1 只能填入(3, 6)


发现(3, 6)可填入 1

接着检视数字 2


发现(3, 8)(4, 6)可填入 2

检视数字 3 时没发现填入点,检视数字 4 时,发现需用到高级摒除法:因为第 2 行及第 9 列的数字 4 使得下左九宫格的数字 4 只能填在第 8 列,再加上第 6 行及第 9 列的数字 4 ,使得下中九宫格的数字 4 只能填到(7, 4) 了:


发现(7, 4)可填入 4

接着的下一个解还是要使用高级摒除法:因为第 9 行的数字 4 使得中右九宫格的数字 4 只能填在第 5 列, 再加上第 4 列、第 4 及第 6 行的也已有 4 了,所以中央九宫格的数字 4 就只能填到(6, 5) 了:


发现(6, 5)可填入 4

接着再检视数字 45 时都没发现填入点了,开始检查数字 6


发现(9, 4)(4, 1)可填入 6


发现(2, 2)可填入 6

开始检查数字 7


发现(5, 5)可填入 7

开始检查数字 8


发现(7, 9)(6, 1)可填入 8


发现(9, 2)可填入 8

开始检查数字 9


发现(6, 4)可填入 9

回头检查数字 1,因为所用技巧只是一般的摒除,就不一一显示摒除情形了:


可相继发现数字 1 应填在 (4, 5)(6, 9)(7, 7)

检视数字 2 时没发现填入点,检查数字 3


可相继发现数字 3 应填在 (4, 4)(2, 1)(7, 2)

检查数字 4 时没发现填入点,检查数字 5,发现了一个好有趣的摒除,居然不靠任何的数字 5 也能使用 摒除法,且找到下一个解;因为中左九宫格的数字 5 只能填在第 5 列,所以中右九宫格的数字 5 就只能填在(4, 9)了:


发现(4, 9)(6, 6)可填入 5

检查数字 6 时没发现填入点,检查数字 7


可相继发现数字 7 应填在 (7, 8)(9, 6)(8, 1)(3, 2)(1, 4)(2, 9)


可相继发现数字 9 应填在 (1, 9)(2, 5)

回头检查到数字 3 时也很有意思,因为下中九宫格的数字 3 一定要填在第 5 行,再加上第 4 行已有 3 了, 所以上中九宫格的数字 3 只能填在(1, 6)


发现(1, 6)可填入 3

直观式解题法解高级题范例

概说

对大部分的数独初学者来说,什么叫做不用猜测,完全以逻辑方法得出解答,是最不容易理解且做到的事。 虽然我们已说明了直观式解题所常用的技巧,但要如何应用,可能仍有人不太明了!

运用网页为媒介的最大优势就是不受篇幅的限制,真的是想要怎么表达,就可以这么表达!既然有全题 解题示范的需求,尤怪就示范给大家看吧,不过,这只是示范哦,玩家的解题程序若和尤怪不同,并不表示 任何意义!只要能解题,采用何种方法其实并不是重点,只要求不可猜测就好!

解题实例

< 1>原始谜题

基本上,不同的单位对数独难度的判定有不同的标准,某处列为简易题的,在另一处可能被列为中级题, 甚至高级题;所以大家对难度的标示其实不必太执着。为了让大家比较一下,这个范例的高级题来自 Puzzle Japan Let's Play Sudoku Sample problem 9 ,作者为 KANEOKA Ryo,等级为 Hard

沿续以往的风格,拿到数独谜题后,均由数字 1 起循序一一检视,以免产生遗漏,另外,既然是高级题的示范, 且已做了两个数独题的范例了,太多的图文其实是不必要而无助益的,所以本例中以一般摒除法求得的解就 不再以图示展示,仅直接列出解题的顺序;为了加快解题的速度,也不再只用摒除法, 只要某一行、列或九宫格只剩下两个空白宫格时,就先用唯一解法找找看,看看是否找得到唯一解。


发现(9, 1)有摒除解 3(9, 9)有摒除解 5

检视到数字 6 时,因为第 1 行及第 6 列已有 6 了,中左九宫格的数字 6 就只能填在第 3 行, 然后再加上第 3 列的数字 6,上左九宫格中的数字 6 就只能填在(2, 2)了:


发现(2, 2)有摒除解 6(5, 7)有摒除解 7

检视到数字 7 时,因为第 2 行及第 9 列已有 7 了,下左九宫格的数字 7 就只能填在第 3 行, 然后再加上第 56 列的数字 7,中左九宫格中的数字 7 就只能填在(4, 1)了:


发现(4, 1)有摒除解 7

检视到数字 1 时,使用类似的技巧可发现下右九宫格中的数字 1 就只能填在(7, 9)了:


发现(7, 9)有摒除解 1


发现(7, 2)(4, 8)有摒除解 2

在这里踫到了一次瓶颈,使用摒除法找不到下一个解了;只好在已填数字较多处找唯一解:


发现(5, 1)有唯一解 8(1, 3)有摒除解 8

在这里又踫到了一次瓶颈,使用摒除法又找不到下一个解了;一样只好在已填数字较多处找唯一解, 找到一解之后,利用摒除法又可继续找到下一个解:


发现(6, 1)有唯一解 1(1, 4)有摒除解 5、发现(1, 6)(9, 4)有摒除解 6
(8, 4)(9, 3)(3, 2)(2, 7)有摒除解 1

检视到数字 2 时,恰巧出现一个高级摒除法的技巧,虽然在本题即使不用也一样可以得到下一个解, 但既然踫到了,机会难得,就介绍一下吧:由于第 23 行的数字 2 ,使得上左九宫格的数字 2 只能填在 (1, 1)(3, 1);由于第 89 行的数字 2 ,使得上右九宫格的数字 2 只能填在 (1, 7)(3, 7);在这样的状况下,如果上左九宫格的数字 2 填在(1, 1),则上右九宫格 的数字 2 就一定要填在(3, 7);如果上左九宫格的数字 2 填在(3, 1),则上右九宫格 的数字 2 就一定要填在(1, 7);不论是哪一种状况发生,第 13 列的数字 2 都会被填入,所以 其它宫格不能再填入数字 2,再加上第 5 行的 2 ,使得上中九宫格的数字 2 只能填在(2, 6)
注:这其实就是候选数法中的矩形顶点删减法。


发现(2, 6)有摒除解 2


发现(5, 4)有摒除解 2(2, 5)有摒除解 3
(2, 3)(6, 2)(3, 8)(5, 5)有摒除解 5
(4, 5)(5, 3)有摒除解 2(4, 3)有摒除解 9(3, 7)有摒除解 8

在检视数字 8 时,又要使用较曲折的摒除技巧才能找到下一个解:


发现(4, 9)有摒除解 8

数独的候选数法解题技巧

候选数法概说

前言

数独的解谜技巧,刚开始发展时,以直观式的唯一解法 摒除法为主,对于初入门的玩家来说,这也是一般人较容易理解、接受的方法,对于一般简易级或中级 数独谜题,如果能灵活运用这两种技巧,通常已游刃有余。

但是唯一解法及初阶的摒除法在使用上有其限制,在中、高级的题目中有时将无用武之地。但高阶的摒除技 巧又十分繁难,即使是资深的玩家面对瓶颈时,也并非能在短时间内就一定能看出该如何进行摒除!

计算机人工智能已在现代任一项事物中均占有一席之地,当然不会在数独这项最新流行的益智游戏中缺席了! 直观式的唯一解法及摒除法,不但在程序编写上也将十分难以呈现,在执行效率上也将显得十分笨拙、于是 就有了候选数法的产生。

准备工作

< 1>

要以候选数法来解数独谜题,必须制作候选数表如< 1>,其中每一个宫格中的数字 19 ,代表的是本宫格 在解题时还可以填入的数字,如果某一个数字已被摒除在本宫格的可填入范围,就必须将其划除;所以当要在 某个宫格中填入数字时,只要从该宫格的候选数中挑选即可,不在该宫格候选数中的数字,是不可以填入 该宫格中的。

< 2>

每个数独谜题都有已给定的数字,例如< 2>就是一个简易级的数独谜题,接下来我们要开始填入数独谜题中 已给定的数字,但每填入一数,一定要记得:必须将该数字所处宫格之行、列及九宫格的相关各宫格做相应的 候选数删减;例如当将数独谜题中的数字 5 填入(1,7)后,必须将(1, 7)的候选数全部删除,并将数字 5 1 列、第 7 行及上右九宫格的各个宫格候选数中删除,因为这些宫格都已经不能再填入数字 5 了。完成 图如 < 3>

< 3>

接着再将数字 4 填入(2, 1),一样的除了必须将(2, 1)的候选数全部删除外,也必须将数字 4 2 列、第 1 行及上左九宫格的各个宫格候选数中删除,因为这些宫格都已经不能再填入数字 4 了。完成 图如 < 4>

< 4>

数独谜题已给定的数字当然不只一个,在填入这些数字时是否需要遵照某些顺序或规则呢?不必!只要你高兴, 想先填哪一个数字都可以,并不会因为顺序的不同而产生不同的结果!只要在填入数字时不要忘了对相关各宫格 的候选数做相应的删减,那么,数独谜题候选数表在已给定的数字全部填入后,得到的结果应是一样的! 请依照< 2>的谜题继续输入各给定的数字,然后再和< 5>核对一下,如果得到的是相同的结果,就表示你已 学会了候选数法的入门操作了,可喜可贺!

< 5>

正解候选数删减法

一般在解数独题时,会先以直观法进行解题,当进行到某一程度之后,直观法已无法有任何进展时,会进行填制候选数表,候选数表是困难度较高技巧的基础,在某些情况下,对数独局势经施行某一解法后(此一解法通常都是该谜题的门坎,跨不过去,就无法再前进一步,跨过了就海阔天空),在某一宫格会产生正解,当正解产生后,相关区域的候选数就必须删减,删减的过程也可能产生另一个正解,而发生了连锁反应,就是所谓的候选数删减递归,结果可能就得到了最终的答案。下面就是一个正解候选数删减递归的例子。

R6列灰色部份(C7,C8,C9)发生了三链数(1,5,6)的情形(三链数删减法是一种候选数删减技巧,此处不予详述),此时我们要对R6列的C1C6实施三链数删减,该列经删减后,C1C6的局势为{2,478,3,9,78,4},其中得到了R6C4的正解4,因为有了正解,所以我们可以利用R6C4 = 4这个关键进行正解候选数删减(删减R6C4所处的行、列、宫的其它宫格),这个过程有如行云流水般的顺畅,总共进行了72个步骤,而得到最终的答案,因此当正解发生时,不要遗漏任何可以删减的候选数,如此才可以用困难度较低的技巧解题,也会有较高的解题效率。

经上述72步骤的正解候选数删减后,得到40个正解而完成了本数独题。仔细观察上述的进行步骤,可以得知,某一步骤得到正解后,下一步骤即以该正解进行候选数删减,当下层的删减过程结束后,回到上层未完成部份继续进行删减,这就是所谓的删减递归,删减递归可以确保不遗漏任何一个可以删减的候选数,如此将可以用最简单、最有效率的方式完成解题工作。

每个人在施行正解候选数删减时,步骤可能不同,只要能确保不遗漏每一个可以删减的候选数,则一样可以得到最终答案。在删减的过程中,若遗漏了可以删减的候选数,就必须用困难度较高的方法去解题,那时可能把人搞得心浮气躁,失去了解题的乐趣,以下是最终的答案。

下面还有一个练习题,关键是R9C6=4,从这里出发可以完成整个解题工作。

以下是解出之答案

唯一候选数法

(Singles Candidature, sole Candidate)

概说

依照候选数法概说一文中,候选数表的制作规则,我们可以知道:可以填入某一 个宫格的数字,一定会列于该宫格的候选数中;不在候选数中的数字,就不能填入该宫格中。

所以如果在候选数表中发现某一个宫格的候选数仅有 1 个数字,那就是表示:不必再考虑了!这个宫格就是 只能填入这个数字啦!如果填入别的数字,就会违反数独的填制规则的。

利用「找出候选数表中,候选数仅有 1 个数字的宫格来,并填入该候选数」的方法就 叫做唯一候选数法(Singles Candidature, sole Candidate)

唯一候选数法示例

< 1>数独谜题的候选数表

< 1> 是我们在候选数法概说一文中完成的候选数表,其中有好几个宫格的候选数 都只有 1 个,所以可以利用唯一候选数法来进行填制。先还不要填入数字,我们先来找找看,有哪些宫格有 唯一候选数?

1. (2, 7) 有唯一候选数 7

2. (5, 5) 有唯一候选数 5

3. (8, 3) 有唯一候选数 4

哇!同时出现了 3 个唯一候选数啊!那么,先填入哪一个会不会影响填制结果呢?当然不会了, 只要你高兴,喜欢先填哪一个都没问题的。

好,就在这 3 个宫格中填入他们的唯一候选数吧,填制结果如< 2>

< 2>

哇!又有唯一候选数出现了呢!没错,一般简易级的数独谜题,如果使用直观式的 唯一解法摒除法来解题,即使是数独老手,也要花费相当的工夫才能完成; 但是如果采用唯一候选数法,从候选数表制作完成开始,唯一候选数将一个一个接连不断的出现,轻轻松松的 就可以完成解题啦!< 3> < 1> 的完成解。

< 3>完成解

隐性唯一候选数法

(Hidden Singles Candidature)

概说

一般的简易级数独谜题,以唯一候选数法来解,大概都可以完成;即使是中、高 级的数独谜题,唯一候选数法仍有许多的应用时机,但仅此一技,是不足以应付所有状况的。

如果某个数字在某一列各宫格的候选数中只出现一次时,那就是表示:不必再考虑了!出现这个数字的宫格就是 只能填入这个数字啦!虽然这个宫格的候选数可能不只一个,表示它似乎还有可能填入别的数字,但如果 在本宫格填入其它数字的话,因为本列中其它宫格的候选数中,都没有这个数字存在,表示其它宫格都不 能填入这个数字,那么这个数字就将在本列中缺席了;这是违反数独的填制规则的。

同样的道理,如果某个数字在某一行各宫格的候选数中只出现一次时,出现这个数字的宫格也只能填入本数字了; 当然,如果某个数字在某一个九宫格的各宫格候选数中只出现一次时,出现这个数字的宫格也将只能填入本数字了。

利用「找出某一行、某一列或某一个九宫格各个宫格候选数中只出现一次的数字来,并将该数字填入出现这个数字 的宫格中」的方法就叫做隐性唯一候选数法 (Hidden Singles Candidature, unique Candidate)

为了便于分辨:当某列的某个宫格出现隐性唯一候选数时,我们称该宫格出现了列隐性唯一候选数 同理,当某行的某个宫格出现隐性唯一候选数时,我们称该宫格出现了行隐性唯一候选数 当某个九宫格的某个宫格出现隐性唯一候选数时,我们称该宫格出现了九宫格隐性唯一候选数

隐性唯一候选数法示例

< 1>

< 1> 是一个中级的数独谜题,一开始就找不到唯一候选数,所以必须让上面所述的隐性唯一候选数法登场了。 为了练习并测试你寻找隐性唯一候选数的能力,请先不要往下看答案,让我们先来找找看,有哪些宫格出现了 隐性唯一候选数了呢?如果答案和以下列出的相同,那么你就是合格了!答案是:

1. (1, 6) 出现了列隐性唯一候选数 8

2. (1, 7) 出现了列隐性唯一候选数 9

3. (4, 3) 出现了列隐性唯一候选数 4

4. (6, 7) 出现了列隐性唯一候选数 2

5. (9, 3) 出现了列隐性唯一候选数 8

6. (9, 4) 出现了列隐性唯一候选数 9

7. (9, 2) 出现了行隐性唯一候选数 5

8. (1, 8) 出现了行隐性唯一候选数 3

9. (3, 1) 出现了九宫格隐性唯一候选数 5

10. (1, 6) 出现了九宫格隐性唯一候选数 8

11. (1, 7) 出现了九宫格隐性唯一候选数 9

12. (4, 3) 出现了九宫格隐性唯一候选数 4

13. (6, 7) 出现了九宫格隐性唯一候选数 2

14. (9, 3) 出现了九宫格隐性唯一候选数 8

15. (9, 4) 出现了九宫格隐性唯一候选数 9

16. (7, 9) 出现了九宫格隐性唯一候选数 3

哇!同时出现了 16 个隐性唯一候选数啊!那么,先填入哪一个会不会影响填制结果呢?当然不会了, 只要你高兴,喜欢先填哪一个都没问题的。

隐性唯一候选数和唯一候选数一样,常常会一个接着一个的接连出现,但是唯一候选数出现时十分显眼,一眼即可 看出,而隐性唯一候选数出现时,并不显眼,必须以耐心、细心慢慢比对,才能得出。所以如果出现唯一候选数时, 除非你是存心要磨炼自己的耐心,就千万不要还去死命的寻找隐性唯一候选数了,直接运用唯一候选数来填入数字 就好了;真的没有唯一候选数出现时,不得已才要运用到隐性唯一候选数法的。

一般的简易级、中级数独谜题,以唯一候选数法和隐性唯一候选数法交错运用来填制,百分之九十的题目均可完成 了。而其技巧十分的简易,不过要多一点耐心及细心而已,候选数法和直观式的唯一解法、摒除法,孰优孰劣,相信 你已可比较出来了。

区块删减法

(Single Sector Candidates)

概说

遇到了高级、困难级的数独谜题时,唯一候选数法 隐性唯一候选数法仍有其黔驴技穷的时候;这时就是区块删减法上场的时机了,往后将要介绍的 数对删减法(Naked Pairs)、隐性数对删减法(Hidden Pairs)、三链数删减法(Naked Triples) 隐性三链数删减法(Hidden Triples) 、矩形顶点删减法(X-Wing)、三链列删减法(Swordfish)都具有类似的特性:使用这 些技巧的目的仅在删减候选数的数目,删减之后,还是得使用唯一候选数法和隐性唯一候选数法来 找出下一个解并填入数字的。

当使用唯一候选数法或隐性唯一候选数法找不出下一个解时,到底该先使用哪一个删减法呢?随您高兴的用吧! 如果你比较擅长使用数对删减法,那就先用数对删减法吧!如果你认为区块删减法比较好用,那就先用数对删减法吧! ......;介绍时总有先后的次序,但并不表示先介绍的就较好用或必须先用哦!只要能达到:「安全删减掉候选数, 并找出下一个解」的目的,使用哪一种删减法都是可以的。

< 1>

请看< 1>,这时若使用唯一候选数法或隐性唯一候选数法是找不出下一个解来的!就先来试试区块删减法吧。 请观察第 9 行:数字 1 在本行各宫格的候选数中,是不是仅出现在(1,9)(3,9)的这一个区块中?太好了,区块删减 的条件已有了;因为这表示第 9 行的数字 1 只能填在(1,9)(3,9)的这一个区块中,而不论填在本区块 的哪一个宫格中,上右九宫格的其它宫格将因本九宫格已出现数字 1,而不得再填入 1,否则就违反数独填制的规则 啦!所以(1, 7)(3, 7)(1, 8)(3, 8)这两个区块的宫格,如果其候选数中包含有数字 1,就可以毫不考虑的 把它删除掉,因为候选数的意义是可能填入该宫格的数字,而这个数字已不可能再用来填入该宫格中了。啊!太好啦! (1, 7)的候选数中包含有数字 1,所以可以把 (1, 7) 的候选数由 16 删减成 6,于是可用唯一候选数法来填入 下一个解了。

当区块删减法的条件成立时,可别高兴得太早,因为很有可能找不到可删减的数字,例如:在< 1>的第 1 行中, 数字 2 在本行的各宫格候选数中,仅出现在(4, 1)(6, 1)这一个区块中,而不论数字 2 将来会被填到本区块 的哪一个宫格中,将使得数字 2 不得再填入(4, 2)(6, 2)(4, 3)(6, 3)这两个区块中;但请找找看! 这两个区块各宫格的候选数中全部没有数字 2,所以是白忙了一场,条件是成立了,但候选数并未因此而得到删减。

整理一下,并为了简化叙述起见,下面所述的「区块候选数」表示:该区块的各个宫格候选数的总和。例如(1, 3)(3, 3) 的区块候选数就是(1, 3)的候选数 467 (2, 3)的候选数 346 (3, 3)的候选数 37 的总和: 3467 啦!:

1. 当某一个数字只出现在某行的某一个区块候选数中时,就可以把该数字自包含该区块的九宫格之其它 区块候选数中删减掉。

2. 同理,当某一个数字只出现在某列的某一个区块候选数中时,就可以把该数字自包含该区块的九宫格之其它 区块候选数中删减掉。

3. 同理,当某一个数字只出现在某个九宫格的某一个区块候选数中时,就可以把该数字自包含该区块的行或列之其它 区块候选数中删减掉。

利用「找出某一行、某一列或某一个九宫格各个区块候选数中只出现一次的数字来,并将该数字自包含该区块的另一个 行、列或九宫格的其它区块候选数中删减掉」的方法就叫做区块删减法 (Locked Candidates, Single Sector Candidates)

区块删减法示例

区块删减法一共有 4 种状况:第一种是发生在行而去删减九宫格、第二种是发生在列而去删减九宫格、 第三种是发生在九宫格而去删减行、第四种是发生在九宫格而去删减列。

< 1> 就是发生在行而去删减九宫格的例子了,其它的情况举例如下:

< 2>

< 2> 是发生在列而去删减九宫格的例子:因为第 3 列的数字 6 只出现在 (3, 1)(3, 3) 这一个区块, 所以可以将上左九宫格的另两个区块 (1, 1)(1, 3)(2, 1)(2, 3) 候选数中的数字 6 安全的删减掉; 于是(1, 1)的候选数 26 将被删减成 2,出现了唯一候选数啦!

< 3>

< 3> 是发生在九宫格而去删减列的例子:因为上右九宫格的数字 5 只出现在 (3, 7)(3, 9) 这一个区块, 所以可以将第 3 列的另两个区块 (3, 1)(3, 3)(3, 4)(3, 6) 候选数中的数字 5 安全的删减掉; 于是(3, 3)的候选数 59 将被删减成 9,出现了唯一候选数啦!

< 4>

< 4> 是发生在九宫格而去删减行的例子:因为中央九宫格的数字 1 只出现在 (4, 5)(6, 5) 这一个区块, 所以可以将第 5 行的另两个区块 (1, 5)(3, 5)(7, 5)(9, 5) 候选数中的数字 1 安全的删减掉; 于是(8, 5)的候选数 1378 将被删减成 378;同理,中央九宫格的数字 78 都只出现在 (4, 5)(6, 6) 这一个区块,所以可以将第 5 行的另两个区块 (1, 5)(3, 5)(7, 5)(9, 5) 候选数中 的数字 78 都安全的删减掉;于是(8, 5)的候选数 378 将再度被删减成 3;出现了唯一候选数啦!

< 1>< 3>这样,只做一次区块删减就找到下一个解的情况固然是不错,但有时并没有那么顺心, < 4>就需要删减三次才得到下一个解,不过那还算好的了,因为三次的删减都恰好发生在同一个区块中, 请看下面发生在不同区块的情形吧!

< 5>

< 5> 中的(4, 3)将可利用区块删减法得出下一个解,你能够不看下面的解答,自己找出来吗?试试!

也许你已经找出答案了,恭喜!也许你还找不出答案,那也没关系,人有失手,马有失蹄,总有脑袋被浆糊 糊住而一时失误的时候,请看答案吧:因为第 8 列的数字 2 只出现在 (8, 1)(8, 3) 这一个区块, 所以可以将下左九宫格的另两个区块 (7, 1)(7, 3)(9, 1)(9, 3) 候选数中的数字 2 安全的删减掉; 删减之后的结果如< 6>

< 6>

接下来,因为第 3 行的数字 2 只出现在 (4, 3)(6, 3) 这一个区块,所以可以将中左九宫格的另两个区块 (4, 1)(6, 1)(4, 2)(6, 2) 候选数中的数字 2 安全的删减掉;删减之后的结果如< 7>

< 7>

哈!哈!看出来了吗?(4, 3)已出现了列隐性唯一候选数 2 啦!

数对删减法

(Naked Pairs)

概说

遇到了高级、困难级的数独谜题,使得唯一候选数法 隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,数对删减法 是最容易察觉,并进行删减的方法。可惜的是,在实际的解题应用中,可让数对删减法发挥效用的时机并不多。

< 1>

请看< 1>(3, 5)(4, 5)的候选数都恰为 19 两个数字,这时数对删减法的条件已成立了; 这表示第 5 行的数字 1 9 将只能填到这两个宫格中了,因为:如果数字 1 将填入(3, 5),那么(4, 5) 就一定要填入数字 9;反之,如果数字 9 将填入(3, 5),那么(4, 5)就一定要填入数字 1;不论哪一个状况出现, 5 行的数字 1 9 都已出现,所以不得再填入本行的其它宫格;否则就违反数独填制的规则啦! 所以除了这两个宫格外,如果其它宫格的候选数中包含有数字 19,就可以毫不考虑的把它删减掉,因为 候选数的意义是可能填入该宫格的数字,而这两个数字已不可能再用来填入本行的其它宫格中了。啊!太好啦! (2, 5)(6, 5)(8, 5)的候选数中都因包含有数字 1 9,所以可以删减掉,其中(6, 5)的候选数 49 删减成 4,于是可用唯一候选数法来填入下一个解了。

< 2>

当数对删减法的条件成立时,可别高兴得太早,因为很有可能在其它宫格的候选数中会找不到可删减的数字,例如: < 2>的第 5 行中,数对 36 出现在(2, 5)(8, 5),这时数对删减法的条件已成立了没错,但本行的 其它宫格早已填满,哪里找得到可删减的候选数呢?即使不像< 2>般,本行的宫格仍未填满,但仍有可能在各 宫格的候选数找不到该数对来删减的,所以是白忙了一场,条件是成立了,但候选数并未因此而得到删减。 这种情形在解谜的中、后期最容易发生!

整理一下:

1. 当某行的某两个宫格候选数恰为某个数对时,就可以把该数对自本行其它宫格的候选数中删减掉。

2. 同理,当某列的某两个宫格候选数恰为某个数对时,就可以把该数对自本列其它宫格的候选数中删减掉。

3. 当然,当某个九宫格的某两个宫格候选数恰为某个数对时,就可以把该数对自本九宫格之其它宫格候选数中删减掉。

利用「找出某一行、某一列或某一个九宫格中某两个宫格候选数恰为某个数对的情形,并将该数对自 其它宫格候选数中删减掉」的方法就叫做数对删减法(Naked Pairs)

数对删减法示例

数对删减法一共有 3 种状况:第一种发生在行、第二种是发生在列、第三种则发生在九宫格。< 1> 就是 发生在行的例子了,其它的情况举例如下:

< 3>

< 3> 是数对删减发生在列的例子:图中数字 89 出现在 (9, 8)(9, 9) 这两个宫格, 所以可以将第 9 列的其它宫格候选数中的数字 89 安全的删减掉;于是(9, 1)的候选数 189 将被删减成 1,出现了唯一候选数啦!

< 3> 同时也是数对删减发生在九宫格的例子:图中数字 89 出现在 (9, 8)(9, 9) 这两个宫格, 所以可以将下右九宫格的其它宫格候选数中的数字 89 安全的删减掉;于是(7, 7)(7, 9)这两个宫格 候选数中的数字 89 都可以被安全的删减;其中(7, 9)的候选数 689 将被删减成 6,出现了唯一 候选数啦!

这个数对删减发生在九宫格的例子,两个出现数对的宫格其实还是出现在同一列,虽可提醒玩者有这种 同时适用二者的情形,但发生在九宫格上的感觉上好像少了一点,下面就举一个纯粹发生在九宫格中的例子吧!

< 4>

< 4> 就是数对删减发生在九宫格的例子:图中数字 78 出现在 (8, 5)(9, 4) 这两个宫格, 所以可以将下中九宫格的其它宫格候选数中的数字 78 安全的删减掉;于是(7, 5)(7, 6)这两个宫格 候选数中的数字 8 都可以被安全的删减;其中(7, 5)的候选数 38 将被删减成 3,出现了唯一 候选数啦!

< 5>

只靠数对删减法如< 1>< 4> 般即可找出下一个解的情形当然不错啦!但有时是必须同时搭配 两种以上的删减法才能得到下一个解的。< 5>就是其中的一个例子,请先试着解解看!

< 5>中第 9 列的数字 3 仅出现在(9, 4)(9, 6)这一个区块,所以可以利用区块删减法将(7, 4) 的候选数删成 12(7, 6)的候选数删成 18(8, 5)的候选数删成 25。删减之后,第 4 行的 (4, 4)(7, 4)出现了数对 12,于是可以利用数对删减法将(1, 4)(3, 4)这两个宫格 候选数中的数字 1 都安全的删减掉;其中(1, 4)的候选数 14 将被删减成 4,出现了唯一 候选数啦!

隐性数对删减法

(Hidden Pairs)

概说

遇到了高级、困难级的数独谜题,使得唯一候选数法 隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用 是随个人之喜好的,并无限制。本页介绍的当然就要以隐性数对删减法优先啰!

< 1>

请看< 1>的上右九宫格,数字 89 都只出现在(2, 8)(2, 9)这两个宫格的候选数中,这就是隐性数对删减法 成立的条件!这时上右九宫格的数字 8 9 将只能填到这两个宫格中,而且:

1. 如果数字 8 将填入(2, 8),那么(2, 9)就一定要填入数字 9

2. 反之,如果数字 9 将填入(2, 8),那么(2, 9)就一定要填入数字 8

不论哪一个状况出现,(2, 8)(2, 9)这两个宫格的候选数中若还有其它数字,全部是多余无用的,因为这 两个宫格若填入数字 89 以外的数字,那么上右九宫格的数字 8 9 就将无处可填了。候选数的意义是 可能填入该宫格的数字,而这两个数字以外的数字已不可能再用来填入本宫格中了,所以可以毫不考虑的把 它们删减掉。当(2, 8)(2, 9)这两个宫格的候选数都安全的删减成数字 89 之后,第 2 列的候选数 2 将只出现在 (2, 5),即第 2 列出现了列隐性唯一候选数 2 ,所以可用隐性唯一候选数法在 (2, 5) 填入 这个解 2 了。

整理一下:

3. 当某个数对仅出现在某个九宫格的某两个宫格候选数中时,就可以把这两个宫格的候选数删减成该数对。

4. 同理,当某个数对仅出现在某列的某两个宫格候选数中时,就可以把这两个宫格的候选数删减成该数对。

5. 当然,当某个数对仅出现在某行的某两个宫格候选数中时,就可以把这两个宫格的候选数删减成该数对。

利用「找出某个数对仅出现在某行、某列或某一个九宫格的某两个宫格候选数中的情形,进而将这两个 宫格的候选数删减成该数对」的方法就叫做隐性数对删减法(Hidden Pairs)

当隐性数对删减法完成后,通常还可引发数对删减法;以< 1>为例,当(2, 8)(2, 9)这两个宫格的候选数 都安全的删减成数字 89 之后,还可利用数对删减法 (2, 1)(2, 2)(2, 3) 这三个宫格候选数中的数字 8 删减掉。

隐性数对删减法示例

隐性数对删减法一共有 3 种状况:第一种发生在行、第二种是发生在列、第三种则发生在九宫格。< 1> 就是 发生在九宫格的例子了,其它的情况举例如下:

< 2>

< 2> 是隐性数对删减发生在行的例子:图中第 2 行的数对 46 只出现在 (3, 2)(9, 2) 这两个宫格 的候选数中,所以可以将(3, 2)(9, 2)的候选数安全的删减成数对 46;而经此一删,(3, 3) 宫格出现 了列隐性唯一候选数 1 啦!

< 3>

< 3> 是隐性数对删减发生在列的例子:图中第 7 列的数对 47 只出现在 (7, 1)(7, 8) 这两个宫格 的候选数中,所以可以将(7, 1)(7, 8)的候选数安全的删减成数对 47;而经此一删,(8, 1) 宫格出现 了行隐性唯一候选数 2 啦!

三链数删减法

(Naked Triples)

概说

遇到了高级、困难级的数独谜题,使得唯一候选数法 隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用 是随个人之喜好的,并无限制。本页介绍的当然就要以三链数删减法优先啰!

< 1>

请看< 1>的第 6 列,(6, 2)(6, 3)(6, 9)这三个宫格的候选数中, 相异的数字只有 459 三个;这时三链数删减法的条件已成立了!这表示第 6 列的数字 45 9 将只能填到这三个宫格之中了,因为:如果数字 5 将填入(6, 2),那么(6, 3)就一定要填入数字 4、而 (6, 9)就只能填入数字 9 了;另外,如果数字 9 将填入(6, 2),那么(6, 9)就一定要填入数字 4、而 (6, 3)就只能填入数字 5 了;不论哪一个状况出现,第 6 列的数字 45 9 都将已被使用,所以可将 他们自本列的其它宫格候选数中安全的删减掉,因为这三个数字已不再能成为其它宫格的候选数了。于是 (6, 1)的候选数 189 将被删减成 18(6, 4)的候选数 569 将被删减成 6(6, 5)的候选数 14568 将被删减成 168;唯一候选数已出现在 (6, 4)了。

整理一下:

1. 当某列的某三个宫格候选数中,相异的数字不超过 3 个时,就可以把这 3 个数字自 本列的其它宫格候选数中删减掉了。

2. 同理,当某行的某三个宫格候选数中,相异的数字不超过 3 个时,就可以把这 3 个数字自 本行的其它宫格候选数中删减掉了。

3. 当然,当某一个九宫格的某三个宫格候选数中,相异的数字不超过 3 个时,就可以把这 3 个数字自本九宫格的其它宫格候选数中删减掉了。

利用「找出某一列、某一行或某一个九宫格中的某三个宫格候选数中,相异的数字不超过 3 个的情形, 进而将这 3 个数字自其它宫格的候选数中删减掉」的方法就叫做三链数删减法 (Naked Triples)

本法其实为数对删除法的推广,在介绍数对删减法时,因为我们的寻找标的是 数对,所以使用了一般人较能接受的数对这个名词,而说明成「找出某一行、 某一列或某一个九宫格中某两个宫格候选数恰为某个数对的情形,并将该数对自其它宫格候选数中删减掉」 的方法就叫做数对删减法。如果将以上的说明内容换成改成「找出某一列、某一行或某一个九宫格中的 某二个宫格候选数中,相异的数字不超过 2 个的情形,进而将这 2 个数字自其它宫格的候选数中删减掉」 的方法就叫做数对删减法也是成立的。

本法还可以继续加以推广:

4. 四链数删减法就是:「找出某一列、某一行或某一个九宫格中的某四个宫格候选数中,相异的数字 不超过 4 个的情形,进而将这 4 个数字自其它宫格的候选数中删减掉」的方法。

5. 五链数删减法就是:「找出某一列、某一行或某一个九宫格中的某五个宫格候选数中,相异的数字 不超过 5 个的情形,进而将这 5 个数字自其它宫格的候选数中删减掉」的方法。

6. ......

如果愿意的话,你确实是可以这样推广的,只是,实用上是否有其应用的空间呢?

三链数删减法示例

三链数删减法一共有 3 种状况:第一种发生在行、第二种是发生在列、第三种则发生在九宫格。< 1> 就是 发生在列的例子了,其它的情况举例如下:

< 2>

< 2> 是三链数删减法发生在列的例子:第 4 列中的(4, 2)(4, 3)(4, 9)三个宫格候选数中, 相异的数字只有 278 三个,所以可以将这 3 个数字自其它宫格的候选数中删减掉,于是 (4, 4)的候选数 268 将被删减成 6,出现唯一候选数了。

< 3>

< 3> 是同时应用列及行的三链数删减法的例子:

1. 首先:第 5 列中的(5, 7)(5, 8)(5, 9)三个宫格候选数中,相异的数字只有 128 三个, 这时,如果数字 1 被填入(5, 7),那么(5, 9)将只能被填入数字 2,而(5, 8)就只能填入数字 8 了; 如果数字 2 被填入(5, 7),那么(5, 9)将只能被填入数字 1,而(5, 8)一样只能填入数字 8 如果数字 8 被填入(5, 7),那么(5, 8)(5, 9)将出现数对 12,所以数字 12 就只能被填到 (5, 8)(5, 9)中;不论出现的是哪一种状况,数字 128 在本列都已使用,所以可以将 3 个数字自其它宫格的候选数中删减掉,于是(5, 4)(5, 6)的候选数都被删减成 46

2. 接下来:第 6 行中的(1, 6)(4, 6)(9, 6)三个宫格候选数中,相异的数字只有 567 三个, 这时,如果数字 7 被填入(1, 6),那么(4, 6)将只能被填入数字 5,而(9, 6)就只能填入数字 6 了; 如果数字 6 被填入(1, 6),那么(4, 6)(9, 6)将出现数对 57,所以数字 57 就只能被填到 (4, 6)(9, 6)中;不论出现的是哪一种状况,数字 567 在本行都已使用,所以可以将 3 个数字自其它宫格的候选数中删减掉,于是(5, 6)的候选数将继续被删减成 4,出现唯一候选数了。

< 4>

< 4> 是三链数删减法发生在九宫格的例子:中央九宫格中的(4, 6)(5, 4)(5, 6)三个宫格候选数中, 相异的数字只有 389 三个,所以可以将这 3 个数字自其它宫格的候选数中删减掉,于是 (6, 4)的候选数 359 将被删减成 5,出现唯一候选数了。

隐性三链数删减法

(Hidden Triples)

概说

遇到了高级、困难级的数独谜题,使得唯一候选数法 隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用 是随个人之喜好的,并无限制。本页介绍的例子当然可用其它删减法完成解题,但还是要以隐性三链数删减法 优先啰!

< 1>

请看< 1>的第 2 列,数字 178 只出现在(2, 1)(2, 7)(2, 8)这三个宫格的候选数中;这时 隐性三链数删减法的条件已成立了!这表示第 2 列的数字 17 8 将只能填到这三个宫格中,因为: 如果让别的数字填入这三个宫格之中后,这三个相异的数字能填入的可能宫格就只剩下两个,而那是 不可能的事!所以若这三个宫格的候选数中还有其它数字,全部是多余无用的,它们已不可能再用来 填入这些宫格中了,所以可以毫不考虑的把它们删减掉。于是(2, 7)(2, 8)这两个宫格候选数中的 6 都可被安全的删减掉;其中(2, 7)的候选数少了数字 6,将使得(8, 7)出现行隐性唯一候选数 6 ,于是 可用隐性唯一候选数法来填入下一个解了。

整理一下:

1. 当某 3 个数字仅出现在某列的某三个宫格候选数中时,就可以把这三个宫格的候选数删减成该 3 个数字。

2. 同理,当某 3 个数字仅出现在某行的某三个宫格候选数中时,就可以把这三个宫格的候选数删减成该 3 个数字。

3. 当然,当某 3 个数字仅出现在某个九宫格的某三个宫格候选数中时,就可以把这三个宫格的候选数删减成该 3 个数字。

利用「找出某 3 个数字仅出现在某行、某列或某一个九宫格的某三个宫格候选数中的情形,进而将这三个 宫格的候选数删减成该 3 个数字」的方法就叫做隐性三链数删减法(Hidden Triples)

本法其实为隐性数对删除法的推广,而且还可以继续加以推广:

4. 隐性四链数删减法就是:「找出某 4 个数字仅出现在某行、某列或某一个九宫格的某四个宫格候选数中 的情形,进而将这四个宫格的候选数删减成该 4 个数字」的方法。

5. 隐性五链数删减法就是:「找出某 5 个数字仅出现在某行、某列或某一个九宫格的某五个宫格候选数中 的情形,进而将这五个宫格的候选数删减成该 5 个数字」的方法。

6. ......

如果愿意的话,你确实是可以这样推广的,只是,实用上是否有其应用的价值或空间呢?

隐性三链数删减法示例

隐性三链数删减法一共有 3 种状况:第一种发生在行、第二种是发生在列、第三种则发生在九宫格。< 1> 就是 发生在列的例子了,其它的情况举例如下:

< 2>

< 2> 是隐性三链数删减发生在行的例子:图中第 4 行的数字 249 只出现在 (4, 4)(5, 4)(6, 4) 这三个宫格的候选数中,所以可以将三个宫格候选数中 249 以外的数字安全的删减掉,(4, 4)的候选数删减成24 (5, 4)的候选数删减成249(6, 4)的候选数删减成 9;出现了唯一候选数啦!

< 3>

< 3> 是隐性三链数删减发生在九宫格的例子:图中中央九宫格的数字 259 只出现在 (5, 4)(5, 6)(6, 4) 这三个宫格的候选数中,所以可以将三个宫格候选数中 259 以外的数字安全的删减掉, (5, 4)的候选数删减成259(5, 6)的候选数删减成25(6, 4)的候选数删减成 9;出现了唯一候选数啦!

< 4>

< 1>< 3> 这样只经一次删减就出现下一个解的情况当然不错了,但有时可没法这样顺心, < 4> 就是一个例子。下一个解将出现在(5, 6) 这个宫格,你能找出该填入什么数字吗?

以目前所学到的方法,要解出下一个解,需要二个步骤:

1. 先看中左九宫格吧!由于只剩(5, 1)(5, 3)这个区块尚未填入数字,所以可用区块删减法将 5 列其它区块候选数中的 134 全部删减掉,但实际上仅能删到(5, 4)(5, 6)候选数的数字 4 而已。

2. 接下来请观察第 6 行! 由于数字 149 只出现在 (2, 6)(8, 6)(9, 6) 这三个宫格的候选数中 [因为(5, 6)的候选数在上一步骤中已被删减为58 ] 所以可用隐性三链数删减将三个宫格候选数中 149 以外的数字安全的删减掉, (2, 6)的候选数删减成149(9, 6)的候选数没变;(8, 6)的候选数则由 24589 删减成 49 由于 5 被删减掉了,使得(5, 6) 出现了行隐性唯一候选数 5 啦!

矩形顶点删减法

(X-Wing)

概说

遇到了高级、困难级的数独谜题,使得唯一候选数法 隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用 是随个人之喜好的,并无限制。本页介绍的例子当然可用其它删减法完成解题,且本删减法成立的条件 和其它方法相比稍嫌繁杂,但为了介绍,在进行解题时还是要以矩形顶点删减法优先啰!

< 1>

请看< 1>的第 1 列及第 9 列,数字 8 都只出现在第 58 行的宫格候选数中;这时,数字 8 在此二列的 填入只有下列两种情形:

1. 1 列的数字 8 若填到 (1, 5) 中、则第 9 列的数字 8 就只能填到 (9, 8) 了。

2. 1 列的数字 8 若填到 (1, 8) 中、则第 9 列的数字 8 就只能填到 (9, 5) 了。

不论哪一种情况发生,都表示第 5 行及第 8 行的数字 8 已有归属了,所以 ( 2, 5 )( 8, 5 ) ( 2, 8)( 8, 8 ) 都不能再填入数字 8 了,可以毫不考虑的自它们的候选数中把数字 8 删减掉, 于是(3, 5)(6, 5)(3, 8)(7, 8)这四个宫格候选数中的 8 都可被安全的删减掉;而当(6, 5)的候选数少了数字 8 后,将使得(6, 6)出现列隐性唯一候选数 8 ,于是 可用隐性唯一候选数法来填入下一个解了。

整理一下:

3. 当某个数字在某两列仅出现在相同的两行时,就可以把这两行其它宫格候选数中的该数字删减掉。

4. 同理,当某个数字在某两行仅出现在相同的两列时,就可以把这两列其它宫格候选数中的该数字删减掉。

利用「找出某个数字在某两列仅出现在相同两行的情形,进而将该数字自这两行其它宫格候选数中删减掉」; 或「找出某个数字在某两行仅出现在相同两列的情形,进而将该数字自这两列其它宫格候选数中删减掉」的方法 就叫做矩形顶点删减法(X-Wing)。因为本删减法的条件成立时,关键的数字 8 所处的宫格在数独方阵上看来,刚好就在一个矩形的顶点。

遇到了高级、困难级的数独谜题,使得唯一候选数法 隐性唯一候选数法黔驴技穷的时候,虽然你可以优先使用矩形顶点删减法来寻找下一个解;但大部分的人在 使用删减法的优先级上,通常都会将矩形顶点删减法排在稍后一点,为什么要如此安排,在实际使用一段时间之后, 相信你自能体会了,但这个方法又是不可或缺的,如果不会运用本删减法,有很多高级的数独谜题就将无解了。

矩形顶点删减法示例

矩形顶点删减法只有 2 种状况:第一种的删减发生在行、第二种的删减发生在列。< 1> 就是 删减发生在行的例子了,第二种的情况举例如下:

< 2>

< 2> 是矩形顶点删减发生在列的例子:图中第 2 行、第 8 行的数字 3 只出现在第 1 列及第 2 列, 所以数字 3 在第 2 行及第 8 行的填入只有下列两种情况:

1. 2 行的数字 3 若填到 (1, 2) 中、则第 8 行的数字 3 就只能填到 (2, 8) 了。

2. 2 行的数字 3 若填到 (2, 2) 中、则第 8 行的数字 3 就只能填到 (1, 8) 了。

不论下列哪一种情况发生,都表示第 1 列及第 2 列的数字 3 已有归属,这两列其它的宫格将不能再 填入数字 3 了,所以可以将数字 3 (1, 3)(1, 5)(2, 1)(2, 4)(2, 5)的候选数中安全的 删减掉,而当(2, 4) 的候选数由 2346 删减成 246 时;(3, 4)将出现行隐性唯一候选数 3 啦!

< 3>

< 3> 也是一个删减法综合运用的例子。在(1, 8)中将可找到下一个解,你能找出来吗?

3. 因为上中九宫格的数字 1 只发生在(2, 4)(2, 6) 这一个区块,所以可以利用区块删减法 (2, 7)(2, 9)候选数中的数字 1 安全的删减掉。

4. 因为第 1 行及第 7 行的数字 1 只出现在第 4 列及第 9 列,所以可以利用矩形顶点删减法 (4, 3)(9, 6)(9, 8)(9, 9)候选数中的数字 1 安全的删减掉。

经过以上删减之后,(1, 8)出现行隐性唯一候选数 1 啦!

三链列删减法

(Swordfish)

概说

遇到了高级、困难级的数独谜题,使得唯一候选数法 隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用 是随个人之喜好的,并无限制。本页介绍的例子当然可用其它删减法完成解题,且本删减法成立的条件 和其它方法相比稍嫌繁杂,但为了介绍,在进行解题时还是要以三链列删减法优先啰!

< 1>

请看< 1> 146 列的数字 5 ,都只出现在第 158 行的宫格候选数中;这时 三链列删减法的条件已成立了!这表示第 1 行、第 5 行及第 8 行的数字 5 将只能被填到第 1 46 列了,因为:第 1 列的数字 5 只出现在(1, 1)(1, 8),所以数字 5 只能填到这两个宫格;

1. 先假设第 1 列的数字 5 将被填到(1, 1),第 1 行就不能再填数字 5 了,所以第 4 的数字 5 只好填到(4, 5),第 6 列的数字 5 只好填到(6, 8)

2. 另外,假设第 1 列的数字 5 将被填到(1, 8),第 8 行就不能再填数字 5 了,所以第 6 列的数字 5 只好填到(6, 1)(6, 5)

1. 如果第 6 列的数字 5 填到(6, 1),第 4 列的数字 5 就要填到(4, 5)

2. 如果第 6 列的数字 5 填到(6, 5),第 4 列的数字 5 就要填到(4, 1)

不论哪一种情况发生,第 158 行的数字 5 一定要填在第 146 列的交点,别的宫格已不能再使用 数字 5 来填入了,所以若其它宫格的候选数中还有数字 5,全部是多余无用的, 可以毫不考虑的把它们删减掉。于是(5, 1)(5, 5)(9, 5)(1, 8)(2, 8)这五个宫格候选数中的 5 都可被安全的删减掉;其中(9, 5)的候选数少了数字 5,将使得(9, 4)出现列隐性唯一候选数 5 ,于是 可用隐性唯一候选数法来填入下一个解了。

整理一下:

3. 当某个数字在某三列仅出现在相同的三行时,就可以把这三行其它宫格候选数中的该数字删减掉。

4. 同理,当某个数字在某三行仅出现在相同的三列时,就可以把这三列其它宫格候选数中的该数字删减掉。

利用「找出某个数字在某三列仅出现在相同三行的情形,进而将该数字自这三行其它宫格候选数中删减掉」; 或「找出某个数字在某三行仅出现在相同三列的情形,进而将该数字自这三列其它宫格候选数中删减掉」的方法 就叫做三链列删减法(Swordfish)

本删减法其实是矩形顶点删减法的推广,如果你愿意的话,还可以继续推广:

5. 四链列删减法:利用「找出某个数字在某四列仅出现在相同四行的情形,进而将该数字自这四行其它宫格 候选数中删减掉」;或「找出某个数字在某四行仅出现在相同四列的情形,进而将该数字自这四列其它 宫格候选数中删减掉」的方法

6. 五链列删减法:利用「找出某个数字在某五列仅出现在相同五行的情形,进而将该数字自这五行其它宫格 候选数中删减掉」;或「找出某个数字在某五行仅出现在相同五列的情形,进而将该数字自这五列其它 宫格候选数中删减掉」的方法

7. 六链列删减法:...... 不过如果真的这样做,实际应用时,能够用上的机率大概不多就是了。

遇到了高级、困难级的数独谜题,使得唯一候选数法 隐性唯一候选数法黔驴技穷的时候,虽然你可以优先使用三链列删减法来寻找下一个解;但大部分的人在 使用删减法的优先级上,通常都会将三链列删减法排在稍后一点,为什么要如此安排,在实际使用一段时间之后, 相信你自能体会了,但这个方法又是不可或缺的,如果不会运用本删减法,有很多高级的数独谜题就将无解了。

三链列删减法示例

三链列删减法只有 2 种状况:第一种的删减发生在行、第二种的删减发生在列。< 1> 就是 删减发生在行的例子了,第二种的情况举例如下:

< 2>

< 2> 是三链列删减发生在列的例子:图中第 358 行的数字 2 只出现在第 345 列, 所以可以将数字 2 (4, 6)(5, 6)的候选数中安全的删减掉,其中(5, 6) 的候选数由 25 删减成 5 时,出现唯一候选数啦!

关键数删减法

(Colors)

概说

遇到了高级、困难级的数独谜题,使得唯一候选数法 隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用 是随个人之喜好的,并无限制。本页介绍的例子虽然可能可以使用其它删减法完成解题,但在大部份的情况 下是无可取代的,不过本删减法成立的条件和其它方法相比稍嫌繁杂,所以一般在使用时,均将其优先级 放在后面,只在不得已时才用之!

< 1>

请看< 1>,此时使用以往所提及的:数对删减法、区块删减法、隐性数对删减法、三链数删减法、 隐性三链数删减法、矩形顶点删减法、三链列删减法...等各式删减法都已找不到下一个解了,这才是 关键数删减法(Colors, Colouring)最好的上场时机。

某一个数字在某一行、某一列或者某一个九宫格的各宫格候选数中恰出现两次时,我们说在 这一行、这一列或者这一个九宫格中有了一个关键数。由于使用本删减法的时机是在数独填制的中后期, 所以拥有同一个关键数的行列或九宫格通常不止一处,而且环环相扣,使得候选数中包含该关键数的宫格 形成泾渭分明的两大阵营;< 2> < 1>是完全相同的数独残局,但只显示候选数 4 的情形:

< 2>

< 2> 中,第一列的数字 4 仅出现在 (1, 1) (1, 5),是本列的关键数,此时,若数字 4 应填入 (1, 1),则 (1, 5) 就不能再填入数字 4;反之,若数字 4 应填入 (1, 5),则 (1, 1) 就不能再填入数字 4 了; 虽然我们还不知道哪一个宫格应填入数字 4,但却可以利用关键数的这一个特性,将待填的部分宫格区分成两组, 只要其中的一组宫格应填入数字 4 ,另一组宫格就不可能再填入数字 4 。分色的过程如下:

1. 先假设 (1, 1)应填入 4( 为方便记录,记成 (1, 1)= 真; 反之,假设 (1, 1)不能入 4,则记成 (1, 1)= 假。)

2. 利用前述关链数的特性,(1, 1)= ==> (1, 5)= 假、(2, 2)= 假、(7, 1)= 假。

3. (2, 2)= ==> (2, 4)= 真、(8, 2)= 真。

4. (2, 4)= ==> (7, 4)= 假。

5. (1, 5)= ==> (9, 5)= 真。

6. (8, 2)= ==> (8, 7)= 假。

7. (9, 5)= ==> (9, 7)= 假。

8. (9, 7)(8, 7)= ==> (7, 7)= 真。

假设把具有真值的宫格填入浅蓝色,把具有假值的宫格填入粉红色,一面判断宫格的真、假值,一面填入颜色, 当判断完成时就成了< 2> 的样子了。

接下来,我们就可以根据这两组宫格的分布情形,做一些确切的判定:

9. 当在底色为浅蓝的宫格中填入数字 4 时,并无任何不妥!

10. 若在底色为粉红的宫格中填入数字 4 时,则第 7 列或第 7 行都将出现两个数字 4,这是违反填制规则的。

所以所有底色为粉红的宫格都不可能填入数字 4,这些宫格候选数中的数字 4,全部都可以删减掉!回到 < 1>,我们可发现,进行删减之后,下一个解的寻找根本就不成任何问题了。

上述的矛盾判断是藉助已完成的图面来进行的,有时容易造成读者的不易了解;如果您有这个困扰, 那大可以重新来过:既然(1, 1)= 不会造成矛盾,那么就设成 (1, 1)= 假吧!

11. (1, 1)= ==> (1, 5)= 真、(2, 2)= 真、(7, 1)=真。

12. (2, 2)= ==> (2, 4)= 假、(8, 2)= 假。

13. (2, 4)= ==> (7, 4)= 真。产生矛盾了,第 7 列出现了两个 4

(1, 1)= 会产生错误,意即(1, 1)= 才是对的,所以由关链数的特性,可以把 < 2>中粉红宫格的 候选数 2 全部安全的删减掉。

大部分情况下,利用行列及九宫格的关键数将相关宫格区分为两组后,并不一定可找出上述的矛盾状况, 而确切的据以判定某一组宫格可进行候选数的删减,例如< 3>就是一个例子:由第 9 列的关键数 6 所引发区分的两组宫格,不论将数字 6 填到粉红或浅蓝为底色的宫格中,都是不会产生矛盾的。

< 3>

不过< 3>却展示了关键数删减法的另一种删减状况;请看第 1 列中的 (1, 5) (1, 8),它们有什么 特殊之处呢?尤怪居然要用浅绿的底色来标示!

哈!哈!相信你已看出来了,在这两个宫格的同一行上,都有两个不同底色的宫格存在,这代表:不论最后 数字 6 应填到哪一组底色的宫格中,因为本行的数字 6 已被填入了,所以这两个宫格都不可能再填入数字 6 了,因此这两个宫格的候选数 6 都可被安全的删减掉!

为了更清楚的说明这类的删减,假设有某个数独残局的数候选数 1 分布如< 4>

< 4>

利用< 4> 1 列中的关键数 1,可将部分宫格区分为两组独立的宫格,分别以粉红及浅蓝为底色来标示; 只要其中的一组宫格被填入数字 1,另一组宫格就不可能再填入数字 1。虽然在本图中的任一组宫格中填入 数字 1 都不会产生矛盾,但是仍可以利用这些宫格的分布,对其他宫格进行删减。

14. 先看 (3, 7)(3, 8)(3, 9),因为上右九宫格中己拥有粉红及浅蓝为底色的宫格各一个,表示不论 数字 1 应填到哪一组底色的宫格中,因为本九宫格中的数字 1 已被填入了,所以其它宫格都不能再 使用数字 1 了,因此这三个宫格的候选数 1 都可被安全的删减掉!

15. 再看 (4, 9),因为同行的(2, 9)有一个粉红底色的宫格,同列的(4, 4)又有一个浅蓝底色的宫格,所以 不论数字 1 应填到哪一组底色的宫格中,因为同一个行、列中的数字 1 已被填入了,所以本宫格就不能 再使用数字 1 了;这个宫格的候选数 1 可安全的删减掉!

16. 最后来看看 (4, 1)(5, 1),因为同行中己拥有粉红及浅蓝为底色的宫格各一个,所以这两个宫格的 候选数 1 都可安全的删减掉!

利用「以关键数的关系找出矛盾的组合,或者找出确切可进行删减的宫格,进而将该数字自宫格候选数中删减掉」 的方法就叫做关键数删减法(Colors, Colouring)。由于在说明本法的分组状况时, 以颜色来区分是最清楚明了的,所以外国人就以 colors 颜色」为名,也是十分传神的。

数独的解法与技巧

相关推荐