逍遥学能 2014-06-03 09:35
一、唯一解法
前言 直观法的根本是基础摒除法,唯一解法其实只可算是基础摒除法的特例,只因其成立条件十分特殊明确, 可以几乎不花脑筋就填出解来,所以特别独立为一法,但有些人是完全不加理会的。
唯一解详说 当数独谜题中的某一个宫格因为所处的列、行或九宫格已填入数字的宫格达到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 个,这样的情况太特殊、太容易辨认了, 所以独立出来也无可厚非啦!
结语 使用直观法时,大部分的时间应该都在使用基础摒除法,尤其是刚开始解题时,唯一解法应该不太会有应用的机会, 但随着填入的数字越来越多,唯一解法上场的机会就越来越高了。虽然玩家也可以完全以摒除法系统性的寻找题解, 不过这么特殊、容易辨认的情况出现了,而不去理会,也未免太可惜啦!
二、唯余解法
前言 唯余解法的原理十分简单,但是在实际的解题中,非常不容易辨认。
由于唯余解非常不容易辨认,所以一般的报章杂志及较大众化的数独网站,通常会将需要用到唯余解法的数独谜题 归入较高的级别。但另一种以候选数法为分级根据的网站,则会把这类的谜题放到较低的级别中。
唯余解详说 当数独谜题中的某一个宫格,因为所处的列、行及九宫格中,合计已出现过不同的 8 个数字,使得这个宫格所能填入 的数字,就只剩下那个还没出现过的数字时,我们称这个宫格有唯余解。
<图 1> (8, 6)出现唯余解了
<图 1>是出现唯余解的例子,请看 (8, 6)在的第 8 列,共出现了 2、8、1、6、5、3 六个数字; 接下来再看 (8, 6) 所在的第 6 行,共有 2、4、9 三个数字; 而 (8, 6) 所在的下中九宫格, 还包含了1、6、2 三个数字;所以 (8, 6) 所处的列、行及九宫格中,合计已出现过 1、2、3、4、5、6、8、9 共 8 个不同的数字;依照数独的填制规则,同一列、同一行及同一个九宫格中, 每一个数字都只能出现一次,所以 (8, 6) 就只能填入尚未出现过的数字 7 了;这时我们说: (8, 6) 有唯余解 7 。
<图 2>
如果你学过候选数法,应该可以看出来:直观法中的唯一解法及唯余解法,在候选数法中就是最简易的唯一候选数法, 但在直观法中,这两种方法是有着很大不同的。唯一解法的判定一样十分简单,某行、某列或某个九宫格已被填了 8 格时,就是唯一解法;但唯余解法却十分难以辨认,<图 2>中,使用基础摒除法已找不到解了,只好找寻唯余解, 而谜题中共有两个唯余解,请你找找看,看是否可以找到!
当你把鼠标移到图块上时,会显示出其中的一个:在 (1, 6) 有唯余解 3,另一个唯余解 5 则出现在在 (3, 1)。 不容易找到吧!所以一般的报章杂志及较大众化的数独网站,通常会将需要用到唯余解法的数独谜题归入较高的级别。
结语 使用直观法时,大部分的时间应该都在使用基础摒除法,但有些较困难的数独题目,不时会出现以基础摒除法 将找不到解的情况,这时就是唯余解法上场应用的机会了,不过随着填入的数字越来越多,需要唯余解法上场的 机会就越来越低了。
虽然在候选数法玩家的眼中,需要应用越多次唯余解法的数独题目,就和拿着大关刀切菜一般简单。 但需要应用越多次唯余解法的数独题目,在直观法玩家的眼中真是恶魔啊!
三、直观式解题法解简易级范例
概说 对大部分的数独初学者来说,什么叫做不用猜测,完全以逻辑方法得出解答,是最不容易理解且做到的事。 虽然我们已说明了直观式解题所常用的技巧,但要如何应用,可能仍有人不太明了!
运用网页为媒介的最大优势就是不受篇幅的限制,真的是想要怎么表达,就可以这么表达!既然有全题 解题示范的需求,尤怪就示范给大家看吧,不过,这只是示范哦,玩家的解题程序若和尤怪不同,并不表示 任何意义!只要能解题,采用何种方法其实并不是重点,只要求不可猜测就好!
解题实例
<图 1>原始谜题
尤怪拿到数独谜题后,比较一丝不苟,均循序一一检视,以免产生遗漏,本题亦同。先由 1 开始检查, 发现没有可确认的填入点之后,开始检视数字 2,因为第 3 列及第 7、8 行都已有了数字 2,所以上右 九宫格的数字 2 只能填入(1, 9):
发现(1, 9)可填入 2
接着再检视数字 2、3 都没发现填入点,检查数字 4 时,因为第 4、5 列及第 2 行都已有了数字 4,所以中左 九宫格的数字 4 只能填入(4, 1):
发现(4, 1)可填入 4
检查数字 4 没发现填入点后,检查数字 5 时,因为第 1、7 行都已有了数字 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
接着再检视数字 4、5 时都没发现填入点了,开始检查数字 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 行, 然后再加上第 5、6 列的数字 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 时,恰巧出现一个高级摒除法的技巧,虽然在本题即使不用也一样可以得到下一个解, 但既然?到了,机会难得,就介绍一下吧:由于第 2、3 行的数字 2 ,使得上左九宫格的数字 2 只能填在 (1, 1)及(3, 1);由于第 8、9 行的数字 2 ,使得上右九宫格的数字 2 只能填在 (1, 7)及(3, 7);在这样的状况下,如果上左九宫格的数字 2 填在(1, 1),则上右九宫格 的数字 2 就一定要填在(3, 7);如果上左九宫格的数字 2 填在(3, 1),则上右九宫格 的数字 2 就一定要填在(1, 7);不论是哪一种状况发生,第 1、3 列的数字 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
......。
剩下的部份应不必再示范了!就留作练习了。