为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

数独的7种解法

2017-09-19 31页 doc 1MB 113阅读

用户头像

is_196623

暂无简介

举报
数独的7种解法数独解法 七种解法: 前言 数独这个数字解谜游戏,完全不必要用到算术!会用到的只是推理与逻辑。刚开始接触数独时,即使是只 须用到"唯一解"技巧的简易级谜题,就已可让我们焦头烂额了,但是随着我们深陷数独的迷人世界之后,这 类简易级的数独谜题必定在短时间内难再使我们获得征服的满足。于是,当我们逐步深入、进阶到更难的游 戏后,我们将会需要发展龈?多的解谜技巧。虽然最好的技巧便是我们自己发现的窍门,这样我们很容易??能记住它们,运用自如,不需要别人来耳提面命。但是如果完全不去观摩学习他人发展出来的技巧,而全靠 自己摸索,那将是...
数独的7种解法
数独解法 七种解法: 前言 数独这个数字解谜游戏,完全不必要用到算术!会用到的只是推理与逻辑。刚开始接触数独时,即使是只 须用到"唯一解"技巧的简易级谜,就已可让我们焦头烂额了,但是随着我们深陷数独的迷人世界之后,这 类简易级的数独谜题必定在短时间内难再使我们获得征服的满足。于是,当我们逐步深入、进阶到更难的游 戏后,我们将会需要发展龈?多的解谜技巧。虽然最好的技巧便是我们自己发现的窍门,这样我们很容易??能记住它们,运用自如,不需要别人来耳提面命。但是如果完全不去观摩学习他人发展出来的技巧,而全靠 自己摸索,那将是一个非常坚苦的挑战,也不是正确的学习之道!所以让我们一齐来探讨数独的解谜方法吧! 数独的解谜技巧,刚开始发展时,以直观式的唯一解及摒除法为主,对于初入门的玩家来说,这也是一般人 较容易理解、接受的方法,对于一般简易级或中级的数独谜题,如果能灵活运用此二法则,通常已游刃有余。 1.唯一解法 当数独谜题中的某一个宫格因为所处的列、行或九宫格已出现过的数字已达 8 个,那么这个宫格所能填入 的数字就剩下这个还没出现过的数字了。 <图 1> (9, 8)出现唯一解了 <图 1>是最明显的唯一解出现时机,请看第 8 行,由 (1,8) ~(8,8) 都已填入数字了,只剩(9,8)还是 空白,此时(9,8)中应填入的数字,当然就是第 8 行中还没出现过的数字了!请一个个数字核对一下, 哦!是数字 8 还没出现过,所以(9,8) 中该填入的数字就是数字 8 了。 <图 2> (8, 9)出现唯一解了 <图 2>是另一个明显出现唯一解的情形,请看第 8 列,由 (8,1) ~(8,8) 都已填入数字了,只剩(8,9)还是 空白,此时(8, 9)中应填入的数字,当然就是第 8 列中还没出现过的数字了!请一个个数字核对一下, 哦!是数字 9 还没出现过,所以(8, 9) 中该填入的数字就是数字 9 了。 <图 3> (7, 5)出现唯一解了 <图 3>是另一种明显出现唯一解的情形,请看下中九宫格,在这个九宫格中除了(7, 5)还是空白外,其他宫格 都已填有数字了,所以(7, 5)中应填入的数字,当然就是下中九宫格中还没出现过的数字了!请一个个数字核对一下, 哦!是数字 1 还没出现过,所以(7, 5) 中该填入的数字就是数字 1 了。 <图 4> 一般情形下的唯一解 类似 <图 1>~<图 3>这种明显出现唯一解的情形,在一般情形之下及解题初期是不太可能出现的! <图 4>是一个最典型的简易级数独谜题,如果单纯观察某一个行、列或九宫格,没有一处是已出现 8 个数字的, 难道如此就无解了吗?非也!非也!在此图中,出现唯一解的宫格其实有 3 处之多!你能找出来吗?   没错,在一般情形之下及解题初期,唯一解的寻找必须综合所处的行、列及九宫格三者,同时过滤筛选出已出现 的数字才行!如果漏掉其一,可能就无法找出唯一解的出现位置了。现在且不忙着填入数字,先来找找看<图 4>中 目前已出现的唯一解在哪儿吧: 第一个唯一解位置在(2, 3):(2, 3) 所处的第 2 列中已出现的数字是:9、3、5、7。所处的第 3 行中 已出现的数字是:4、2、6、8。至于所处的上左九宫格中,已出现的数字是:2、9、4。所以综合而言, 受其所处位置的行、列及九宫格影响,不得再使用并填入(2, 3) 的数字计有:2、3、4、5、6、7、8、9。 能用来填入的数字确实只剩数字 1 这个唯一的解了。 第二个唯一解位置在(8, 7):(8, 7) 所处的第 8 列中已出现的数字是:1、2、8、6。所处的第 7 行中 已出现的数字是:3、9、5、4。至于所处的下右九宫格中,已出现的数字是:4、6、5。所以综合而言, 受其所处位置的行、列及九宫格影响,不得再使用并填入(8, 7) 的数字计有:1、2、3、4、5、6、8、9。 能用来填入的数字确实只剩数字 7 这个唯一的解了。 第三个唯一解位置在(5, 5):(5, 5) 所处的第 5 列中已出现的数字是:1、7。所处的第 5 行中 已出现的数字是:2、5。至于所处的中央九宫格中,已出现的数字是:3、6、8、9。所以综合而言, 受其所处位置的行、列及九宫格影响,不得再使用并填入(5, 5) 的数字计有:1、2、3、5、6、7、8、9。 能用来填入的数字确实只剩数字 4 这个唯一的解了。 以上所谓的三个唯一解位置,是以<图 4>现况未填入任何数字之前而言,如果开始填入数字,出现唯一解的位置 可能将随之增加。例:当(8, 7) 填入数字 7 之后,(7, 7)将出现唯一解 1;如果再将数字 1 填入(7, 7), 在(7, 8)又将出现唯一解 3;......如此不断循环下去,就可以将整个谜题解出了。 2.唯一候选数法 概说 依照候选数法概说一文中,候选数的制作规则,我们可以知道:可以填入某一 个宫格的数字,一定会列于该宫格的候选数中;不在候选数中的数字,就不能填入该宫格中。 所以如果在候选数表中发现某一个宫格的候选数仅有 1 个数字,那就是表示:不必再考虑了!这个宫格就是 只能填入这个数字啦!如果填入别的数字,就会违反数独的填制规则的。 利用“找出候选数表中,候选数仅有 1 个数字的宫格来,并填入该候选数”的方法就叫做唯一候选数法(Singles Candidature, sole Candidate)。 唯一候选数法示例 <图 1>数独谜题的候选数表 <图 1> 是我们在候选数法概说一文中完成的候选数表,其中有好几个宫格的候选数 都只有 1 个,所以可以利用唯一候选数法来进行填制。先还不要填入数字,我们先来找找看,有哪些宫格有 唯一候选数? 在 (2, 7) 有唯一候选数 7。 在 (5, 5) 有唯一候选数 5。 在 (8, 3) 有唯一候选数 3。 哇!同时出现了 3 个唯一候选数啊!那么,先填入哪一个会不会影响填制结果呢?当然不会了, 只要你高兴,喜欢先填哪一个都没问题的。 好,就在这 3 个宫格中填入他们的唯一候选数吧,填制结果如<图 2>: <图 2>   哇!又有唯一候选数出现了呢!没错,一般简易级的数独谜题,如果使用直观式的 唯一解法及摒除法来解题,即使是数独老手,也要花费相当的工夫才能完成; 但是如果采用唯一候选数法,从候选数表制作完成开始,唯一候选数将一个一个接连不断的出现,轻轻松松的 就可以完成解题啦!<图 3> 是 <图 1> 的完成解。 <图 3>完成解 3.隐性三链数删减法 概说 遇到了高级、困难级的数独谜题,使得唯一候选数法和隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用 是随个人之喜好的,并无限制。本页介绍的例子当然可用其他删减法完成解题,但还是要以隐性三链数删减法优先??! <图 1> 请看<图 1>的第 2 列,数字 1、7、8 只出现在(2, 1)、(2, 7)和(2, 8)这三个宫格的候选数中;这时 隐性三链数删减法的条件已成立了!这表示第 2 列的数字 1、7 和 8 将只能填到这三个宫格中,因为: 如果让别的数字填入这三个宫格之中后,这三个相异的数字能填入的可能宫格就只剩下两个,而那是 不可能的事!所以若这三个宫格的候选数中还有其他数字,全部是多余无用的,它们已不可能再用来 填入这些宫格中了,所以可以毫不考虑的把它们删减掉。于是(2, 7)和(2, 8)这两个宫格候选数中的 6 都可被安全的删减掉;其中(2, 7)的候选数少了数字 6,将使得(8, 7)出现行隐性唯一候选数 6 ,于是 可用隐性唯一候选数法来填入下一个解了。 整理一下: 当某 3 个数字仅出现在某列的某三个宫格候选数中时,就可以把这三个宫格的候选数删减成该 3 个数字。 同理,当某 3 个数字仅出现在某行的某三个宫格候选数中时,就可以把这三个宫格的候选数删减成该 3 个数字。 当然,当某 3 个数字仅出现在某个九宫格的某三个宫格候选数中时,就可以把这三个宫格的候选数删减成该 3 个数字。 利用“找出某 3 个数字仅出现在某行、某列或某一个九宫格的某三个宫格候选数中的情形,进而将这三个 宫格的候选数删减成该 3 个数字”的方法就叫做隐性三链数删减法(Hidden Triples)。 本法其实为隐性数对删除法的推广,而且还可以继续加以推广: 隐性四链数删减法就是:“找出某 4 个数字仅出现在某行、某列或某一个九宫格的某四个宫格候选数中 的情形,进而将这四个宫格的候选数删减成该 4 个数字”的方法。 隐性五链数删减法就是:“找出某 5 个数字仅出现在某行、某列或某一个九宫格的某五个宫格候选数中 的情形,进而将这五个宫格的候选数删减成该 5 个数字”的方法。 ...... 如果愿意的话,你确实是可以这样推广的,只是,实用上是否有其应用的价值或空间呢? 隐性三链数删减法示例 隐性三链数删减法一共有 3 种状况:第一种发生在行、第二种是发生在列、第三种则发生在九宫格。<图 1> 就是 发生在列的例子了,其他的情况举例如下: <图 2> <图 2> 是隐性三链数删减发生在行的例子:图中第 4 行的数字 2、4、9 只出现在 (4, 4)、(5, 4)及(6, 4) 这三个宫格的候选数中,所以可以将三个宫格候选数中 2、4、9 以外的数字安全的删减掉,(4, 4)的候选数删减成2、4; (5, 4)的候选数删减成2、4、9;(6, 4)的候选数删减成 9;出现了唯一候选数啦! <图 3> <图 3> 是隐性三链数删减发生在九宫格的例子:图中中央九宫格的数字 2、5、9 只出现在 (5, 4)、(5, 6)及(6, 4) 这三个宫格的候选数中,所以可以将三个宫格候选数中 2、5、9 以外的数字安全的删减掉, (5, 4)的候选数删减成2、5、9;(5, 6)的候选数删减成2、5;(6, 4)的候选数删减成 9;出现了唯一候选数啦! <图 4> 像 <图 1>~<图 3> 这样只经一次删减就出现下一个解的情况当然不错了,但有时可没法这样顺心, <图 4> 就是一个例子。下一个解将出现在(5, 6) 这个宫格,你能找出该填入什么数字吗? 以目前所学到的方法,要解出下一个解,需要二个步骤: 先看中左九宫格吧!由于只剩(5, 1)~(5, 3)这个区块尚未填入数字,所以可用区块删减法将 第 5 列其他区块候选数中的 1、3、4 全部删减掉,但实际上仅能删到(5, 4)及(5, 6)候选数的数字 4 而已。 接下来请观察第 6 行! 由于数字 1、4、9 只出现在 (2, 6)、(8, 6)及(9, 6) 这三个宫格的候选数中 [因为(5, 6)的候选数在上一步骤中已被删减为5、8 了 ], 所以可用隐性三链数删减将三个宫格候选数中 1、4、9 以外的数字安全的删减掉, (2, 6)的候选数删减成1、4、9;(9, 6)的候选数没变;(8, 6)的候选数则由 2、4、5、8、9 删减成 4、9; 由于 5 被删减掉了,使得(5, 6) 出现了行隐性唯一候选数5啦! 4.隐性数对删减法 概说 遇到了高级、困难级的数独谜题,使得唯一候选数法和 隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用 是随个人之喜好的,并无限制。本页介绍的当然就要以隐性数对删减法优先??! <图 1> 请看<图 1>的上右九宫格,数字 8、9 都只出现在(2, 8)和(2, 9)这两个宫格的候选数中;这时隐性数对删减法 的条件已成立了!这表示上右九宫格的数字 8 和 9 将只能填到这两个宫格中,而且:如果数字 8 将填入(2, 8), 那么(2, 9)就一定要填入数字 9;反之,如果数字 9 将填入(2, 8),那么(2, 9)就一定要填入数字 8; 不论哪一个状况出现,(2, 8)和(2, 9)这两个宫格的候选数中若还有其他数字,全部是多余无用的,因为这 两个宫格若填入数字 8、9 以外的数字,那么上右九宫格的数字 8 或 9 就将无处可填了。候选数的意义是 可能填入该宫格的数字,而这两个数字以外的数字已不可能再用来填入本宫格中了,所以可以毫不考虑的把 它们删减掉。当(2, 8)和(2, 9)这两个宫格的候选数都安全的删减成数字 8、9 之后,(2, 5)出现了列隐性 唯一候选数 2 ,于是可用隐性唯一候选数法来填入下一个解了。 整理一下: 当某个数对仅出现在某个九宫格的某两个宫格候选数中时,就可以把这两个宫格的候选数删减成该数对。 同理,当某个数对仅出现在某列的某两个宫格候选数中时,就可以把这两个宫格的候选数删减成该数对。 当然,当某个数对仅出现在某行的某两个宫格候选数中时,就可以把这两个宫格的候选数删减成该数对。 利用“找出某个数对仅出现在某行、某列或某一个九宫格的某两个宫格候选数中的情形,进而将这两个 宫格的候选数删减成该数对”的方法就叫做隐性数对删减法(Hidden Pairs)。 当隐性数对删减法完成后,通常还可引发数对删减法;以<图 1>为例,当(2, 8)和(2, 9)这两个宫格的候选数 都安全的删减成数字 8、9 之后,还可利用数对删减法把 (2, 1)、(2, 2)、(2, 3) 这三个c格候选数中的数字 8 删减掉。 隐性数对删减法示例 隐性数对删减法一共有 3 种状况:第一种发生在行、第二种是发生在列、第三种则发生在九宫格。<图 1> 就是 发生在九宫格的例子了,其他的情况举例如下: <图 2> <图 2> 是隐性数对删减发生在行的例子:图中第 2 行的数对 4、6 只出现在 (3, 2)及(9, 2) 这两个宫格 的候选数中,所以可以将(3, 2)及(9, 2)的候选数安全的删减成数对 4、6;而经此一删,(3, 3) 宫格出现 了列隐性唯一候选数 1 啦! <图 3> <图 3> 是隐性数对删减发生在列的例子:图中第 7 列的数对 4、7 只出现在 (7, 1)及(7, 8) 这两个宫格 的候选数中,所以可以将(7, 1)及(7, 8)的候选数安全的删减成数对 4、7;而经此一删,(8, 1) 宫格出现 了行隐性唯一候选数 2 啦! 三链列删减法 概说 遇到了高级、困难级的数独谜题,使得唯一候选数法和 隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用 是随个人之喜好的,并无限制。本页介绍的例子当然可用其他删减法完成解题,且本删减法成立的条件 和其他方法相比稍嫌繁杂,但为了介绍,在进行解题时还是要以三链列删减法优先??! <图 1> 请看<图 1>第 1、4、6 列的数字 5 ,都只出现在第 1、5、8 行的宫格候选数中;这时 三链列删减法的条件已成立了!这表示第 1 行、第 5 行及第 8 行的数字 5 将只能被填到第 1 、4、6 列了,因为:第 1 列的数字 5 只出现在(1, 1)及(1, 8),所以数字 5 只能填到这两个宫格; 先假设第 1 列的数字 5 将被填到(1, 1),第 1 行就不能再填数字 5 了,所以第 4 列 的数字 5 只好填到(4, 5),第 6 列的数字 5 只好填到(6, 8); 另外,假设第 1 列的数字 5 将被填到(1, 8),第 8 行就不能再填数字 5 了,所以第 6 列的数字 5 只好填到(6, 1)或(6, 5); 如果第 6 列的数字 5 填到(6, 1),第 4 列的数字 5 就要填到(4, 5); 如果第 6 列的数字 5 填到(6, 5),第 4 列的数字 5 就要填到(4, 1); 不论哪一种情况发生,第 1、5、8 行的数字 5 一定要填在第 1、4、6 列的交点,别的宫格已不能再使用 数字 5 来填入了,所以若其他宫格的候选数中还有数字 5,全部是多余无用的, 可以毫不考虑的把它们删减掉。于是(5, 1)、(5, 5)、(9, 5)和(1, 8)、(2, 8)这五个宫格候选数中的 5 都可被安全的删减掉;其中(9, 5)的候选数少了数字 5,将使得(9, 4)出现列隐性唯一候选数 5 ,于是 可用隐性唯一候选数法来填入下一个解了。 整理一下: 当某个数字在某三列仅出现在相同的三行时,就可以把这三行其他宫格候选数中的该数字删减掉。 同理,当某个数字在某三行仅出现在相同的三列时,就可以把这三列其他宫格候选数中的该数字删减掉。 利用“找出某个数字在某三列仅出现在相同三行的情形,进而将该数字自这三行其他宫格候选数中删减掉”; 或“找出某个数字在某三行仅出现在相同三列的情形,进而将该数字自这三列其他宫格候选数中删减掉”的方法 就叫做三链列删减法(Swordfish)。 本删减法其实是矩形顶点删减法的推广,如果你愿意的话,还可以继续推广: 四链列删减法:利用“找出某个数字在某四列仅出现在相同四行的情形,进而将该数字自这四行其他宫格 候选数中删减掉”;或“找出某个数字在某四行仅出现在相同四列的情形,进而将该数字自这四列其他 宫格候选数中删减掉”的方法 五链列删减法:利用“找出某个数字在某五列仅出现在相同五行的情形,进而将该数字自这五行其他宫格 候选数中删减掉”;或“找出某个数字在某五行仅出现在相同五列的情形,进而将该数字自这五列其他 宫格候选数中删减掉”的方法 六链列删减法:...... 不过如果真的这样做,实际应用时,能够用上的机率大概不多就是了。 遇到了高级、困难级的数独谜题,使得唯一候选数法和 隐性唯一候选数法黔驴技穷的时候,虽然你可以优先使用三链列删减法来寻找下一个解;但大部分的人在 使用删减法的优先顺序上,通常都会将三链列删减法排在稍后一点,为什么要如此安排,在实际使用一段时间之后, 相信你自能体会了,但这个方法又是不可或缺的,如果不会运用本删减法,有很多高级的数独谜题就将无解了。 三链列删减法示例 三链列删减法只有 2 种状况:第一种的删减发生在行、第二种的删减发生在列。<图 1> 就是 删减发生在行的例子了,第二种的情况举例如下: <图 2> <图 2> 是三链列删减发生在列的例子:图中第 3、5、8 行的数字 2 只出现在第 3、4、5 列, 所以可以将数字 2 自(4, 6)、(5, 6)的候选数中安全的删减掉,其中(5, 6) 的候选数由 2、5 删减成 5 时,出现唯一候选数啦! 5.区块删减法 概说 遇到了高级、困难级的数独谜题时,唯一候选数法和 隐性唯一候选数法仍有其黔驴技穷的时候;这时就是区块删减法上场的时机了,往后将要介绍的 数对删减法(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) 的候选数由 1、6 删减成 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)的候选数 4、6、7 及(2, 3)的候选数 3、4、6 及(3, 3)的候选数 3、7 的总和: 3、4、6、7 啦!: 当某一个数字只出现在某行的某一个区块候选数中时,就可以把该数字自包含该区块的九宫格之其他 区块候选数中删减掉。 同理,当某一个数字只出现在某列的某一个区块候选数中时,就可以把该数字自包含该区块的九宫格之其他 区块候选数中删减掉。 同理,当某一个数字只出现在某个九宫格的某一个区块候选数中时,就可以把该数字自包含该区块的行或列之其他 区块候选数中删减掉。 利用“找出某一行、某一列或某一个九宫格各个区块候选数中只出现一次的数字来,并将该数字自包含该区块的另一个 行、列或九宫格的其他区块候选数中删减掉”的方法就叫做区块删减法 (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)的候选数 2、6 将被删减成 2,出现了唯一候选数啦! <图 3> <图 3> 是发生在九宫格而去删减列的例子:因为上右九宫格的数字 5 只出现在 (3, 7)~(3, 9) 这一个区块, 所以可以将第 3 列的另两个区块 (3, 1)~(3, 3)、(3, 4)~(3, 6) 候选数中的数字 5 安全的删减掉; 于是(3, 3)的候选数 5、9 将被删减成 9,出现了唯一候选数啦! <图 4> <图 4> 是发生在九宫格而去删减行的例子:因为中央九宫格的数字 1 只出现在 (4, 5)~(6, 5) 这一个区块, 所以可以将第 5 行的另两个区块 (1, 5)~(3, 5)、(7, 5)~(9, 5) 候选数中的数字 1 安全的删减掉; 于是(8, 5)的候选数 1、3、7、8 将被删减成 3、7、8;同理,中央九宫格的数字 7、8 都只出现在 (4, 5)~(6, 6) 这一个区块,所以可以将第 5 行的另两个区块 (1, 5)~(3, 5)、(7, 5)~(9, 5) 候选数中 的数字 7、8 都安全的删减掉;于是(8, 5)的候选数 3、7、8 将再度被删减成 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啦! 6.关键数删减法 概说 遇到了高级、困难级的数独谜题,使得唯一候选数法和隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用是随个人之喜好的,并无限制。本页介绍的例子虽然可能可以使用其他删减法完成解题,但在大部份的情况下是无可取代的,不过本删减法成立的条件和其他方法相比稍嫌繁杂,所以一般在使用时,均将其优先顺序 放在后面,只在不得已时才用之! <图 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 。<图 2> 中底色为粉红及浅蓝的两组宫格, 就具有这样的性质。 接下来,我们就可以根据这两组宫格的分布情形,做一些确切的判定: 当在底色为浅蓝的宫格中填入数字 4 时,并无任何不妥! 若在底色为粉红的宫格中填入数字 4 时,则第 7 列或第 7 行都将出现两个数字 4,这是违反填制规则的。 所以所有底色为粉红的宫格都不可能填入数字 4,这些宫格候选数中的数字 4,全部都可以删减掉!回到 <图 1>,我们可发现,进行删减之后,下一个解的寻找根本就不成任何问题了。   大部分情况下,利用行列及九宫格的关键数将相关宫格区分为两组后,并不一定可找出上述的矛盾状况, 而确切的据以判定某一组宫格可进行候选数的删减,例如<图 3>就是一个例子:由第 9 列的关键数 6 所引发区分的两组宫格,不论将数字 6 填到粉红或浅蓝为底色的宫格中,都是不会产生矛盾的。 <图 3> 不过<图 3>却展示了关键数删减法的另一种删减状况;请看第 1 列中的 (1, 5) 及 (1, 8),它们有什么 特殊之处呢?尤怪居然要用浅绿的底色来标示! 哈!哈!相信你已看出来了,在这两个宫格的同一行上,都有两个不同底色的宫格存在,这代表:不论最后 数字 6 应填到哪一组底色的宫格中,因为本行的数字 6 已被填入了,所以这两个宫格都不可能再填入数字 6 了,因此这两个宫格的候选数 6 都可被安全的删减掉! 为了更清楚的说明这类的删减,假设有某个数独残局的数候选数 1 分布如<图 4> : <图 4> 利用<图 4>第 1 列中的关键数 1,可将部分宫格区分为两组独立的宫格,分别以粉红及浅蓝为底色来标示; 只要其中的一组宫格被填入数字 1,另一组宫格就不可能再填入数字 1。虽然在本图中的任一组宫格中填入 数字 1 都不会产生矛盾,但是仍可以利用这些宫格的分布,对其他宫格进行删减。 先看 (3, 7)、(3, 8)、(3, 9),因为上右九宫格中己拥有粉红及浅蓝为底色的宫格各一个,表示不论 数字 1 应填到哪一组底色的宫格中,因为本九宫格中的数字 1 已被填入了,所以其他宫格都不能再 使用数字 1 了,因此这三个宫格的候选数 1 都可被安全的删减掉! 再看 (4, 9),因为同行的(2, 9)有一个粉红底色的宫格,同列的(4, 4)又有一个浅蓝底色的宫格,所以 不论数字 1 应填到哪一组底色的宫格中,因为同一个行、列中的数字 1 已被填入了,所以本宫格就不能 再使用数字 1 了;这个宫格的候选数 1 可安全的删减掉! 最后来看看 (4, 1)、(5, 1),因为同行中己拥有粉红及浅蓝为底色的宫格各一个,所以这两个宫格的 候选数 1 都可安全的删减掉! 利用“以关键数的关系找出矛盾的组合,或者找出确切可进行删减的宫格,进而将该数字自宫格候选数中删减掉” 的方法就叫做关键数删减法(Colors, Colouring)。由于在说明本法的分组状况时, 以颜色来区分是最清楚明了的,所以外国人就以 “colors 颜色”为名,也是十分传神的。 7.矩形顶点删减法 概说 遇到了高级、困难级的数独谜题,使得唯一候选数法和 隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用 是随个人之喜好的,并无限制。本页介绍的例子当然可用其他删减法完成解题,且本删减法成立的条件 和其他方法相比稍嫌繁杂,但为了介绍,在进行解题时还是要以矩形顶点删减法优先??! <图 1> 请看<图 1>的第 1 列及第 9 列,数字 8 都只出现在第 5、8 行的宫格候选数中;这时 矩形顶点删减法的条件已成立了!这表示第 5 行及第 8 行的数字 8 将只能被填到第 1 列及 第 9 列了,因为:第 1 列的数字 8 只出现在(1, 5)及(1, 8),所以数字 8 只能填到这两个宫格; 同样的,第 9 列的数字 8 只出现在(9, 5)及(9, 8),所以数字 8 也只能填到这两个宫格; 先假设第 1 列的数字 8 将被填到(1, 5),第 5 行就不能再填数字 8 了,所以第 9 列的数字 8 只好 填到(9, 8);另外,假设第 1 列的数字 8 将被填到(1, 8),第 8 行就不能再填数字 8 了,所以第 9 列的数字 8 只好填到(9, 5);不论哪一种情况发生,第 5 行及第 8 行的数字 8 都已被填入,别的 宫格已不能再使用数字 8 来填入了,所以若其他宫格的候选数中还有数字 8,全部是多余无用的, 可以毫不考虑的把它们删减掉。于是(3, 5)、(6, 5)和(3, 8)、(7, 8)这四个宫格候选数中的 8 都可被安全的删减掉;其中(6, 5)的候选数少了数字 8,将使得(6, 6)出现列隐性唯一候选数 8 ,于是 可用隐性唯一候选数法来填入下一个解了。 整理一下: 当某个数字在某两列仅出现在相同的两行时,就可以把这两行其他宫格候选数中的该数字删减掉。 同理,当某个数字在某两行仅出现在相同的两列时,就可以把这两列其他宫格候选数中的该数字删减掉。 利用“找出某个数字在某两列仅出现在相同两行的情形,进而将该数字自这两行其他宫格候选数中删减掉”; 或“找出某个数字在某两行仅出现在相同两列的情形,进而将该数字自这两列其他宫格候选数中删减掉”的方法 就叫做矩形顶点删减法(X-Wing)。因为本删减法的条件成立时,关键的数字 8 所处的宫格在数独方阵上看来,刚好就在一个矩形的顶点。 遇到了高级、困难级的数独谜题,使得唯一候选数法和 隐性唯一候选数法黔驴技穷的时候,虽然你可以优先使用矩形顶点删减法来寻找下一个解;但大部分的人在 使用删减法的优先顺序上,通常都会将矩形顶点删减法排在稍后一点,为什么要如此安排,在实际使用一段时间之后, 相信你自能体会了,但这个方法又是不可或缺的,如果不会运用本删减法,有很多高级的数独谜题就将无解了。 矩形顶点删减法示例 矩形顶点删减法只有 2 种状况:第一种的删减发生在行、第二种的删减发生在列。<图 1> 就是 删减发生在行的例子了,第二种的情况举例如下: <图 2> <图 2> 是矩形顶点删减发生在列的例子:图中第 2 行、第 8 行的数字 3 只出现在第 1 列及第 2 列, 所以可以将数字 3 自(1, 3)、(1, 5)及(2, 1)、(2, 4)、(2, 5)的候选数中安全的删减掉,其中(2, 4) 的候选数由 2、3、4、6 删减成 2、4、6 时;(3, 4)将出现隐性唯一候选数 3 啦! <图 3> <图 3> 也是一个删减法综合运用的例子。在(1, 8)中将可找到下一个解,你能找出来吗? 因为上中九宫格的数字 1 只发生在(2, 4)~(2, 6) 这一个区块,所以可以利用区块删减法 把(2, 7)~(2, 9)候选数中的数字 1 安全的删减掉。 因为第 1 行及第 7 行的数字 1 只出现在第 4 列及第 9 列,所以可以利用矩形顶点删减法 把(4, 3)及(9, 6)、(9, 8)、(9, 9)候选数中的数字 1 安全的删减掉。 经过以上删减之后,(1, 8)出现行隐性唯一候选数 1 啦
/
本文档为【数独的7种解法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索