直观式解题法解高级题范例
概说
对大部分的数独初学者来说,什么叫做不用猜测,完全以逻辑方法得出解答,是最不容易理解且做到的事。 虽然我们已说明了直观式解题所常用的技巧,但要如何应用,可能仍有人不太明了!
运用网页为媒介的最大优势就是不受篇幅的限制,真的是想要怎么表达,就可以这么表达!既然有全题 解题示范的需求,尤怪就示范给大家看吧,不过,这只是示范哦,玩家的解题程序若和尤怪不同,并不表示 任何意义!只要能解题,采用何种方法其实并不是重点,只要求不可猜测就好!
解题实例
<图 1>原始谜题
基本上,不同的单位对数独难度的判定有不同的标准,某处列为简易题的,在另一处可能被列为中级题, 甚至高级题;所以大家对难度的标示其实不必太执着。为了让大家比较一下,这个范例的高级题来自 「Puzzle Japan 」Let's Play Sudoku 的 Sample problem 第 9 题,作者为 KANEOKA Ryo,等级为 Hard。
沿续以往的风格,拿到数独谜题后,均由数字 1 起循序一一检视,以免产生遗漏,另外,既然是高级题的示范, 且已做了两个数独题的范例了,太多的图文其实是不必要而无帮助的,所以本例中以一般摒除法求得的解就 不再以图示展示,仅直接列出解题的顺序;为了加快解题的速度,也不再只用摒除法, 只要某一行、列或九宫格只剩下两个空白宫格时,就先用唯一解法找找看,看看是否找得到唯一解。
检视到数字 6 时,因为第 1 行及第 6 列已有 6 了,中左九宫格的数字 6 就只能填在第 3 行, 然后再加上第 3 列的数字 6,上左九宫格中的数字 6 就只能填在(2, 2)了:
检视到数字 7 时,因为第 2 行及第 9 列已有 7 了,下左九宫格的数字 7 就只能填在第 3 行, 然后再加上第 5、6 列的数字 7,中左九宫格中的数字 7 就只能填在(4, 1)了:
检视到数字 1 时,使用类似的技巧可发现下右九宫格中的数字 1 就只能填在(7, 9)了:
在这里踫到了一次瓶颈,使用摒除法找不到下一个解了;只好在已填数字较多处找唯一解:
在这里又踫到了一次瓶颈,使用摒除法又找不到下一个解了;一样只好在已填数字较多处找唯一解, 找到一解之后,利用摒除法又可继续找到下一个解:
发现(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):
注:这其实就是候选数法中的矩形顶点删减法。
发现(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 时,又要使用较曲折的摒除技巧才能找到下一个解:
......。
剩下的部份应不必再示范了!就留作练习了。
评论