数独解法------唯一解法
唯一解法
前言
数独这个数字解谜游戏,完全不必要用到算术!会用到的只是推理与逻辑。刚开始接触数独时,即使是只须用到"唯一解"技巧的简易级谜题,就已可让我们焦头烂额了,但是随着我们深陷数独的迷人世界之后,这类简易级的数独谜题必定在短时间内难再使我们获得征服的满足。于是,当我们逐步深入、进阶到更难的游戏后,我们将会需要发展龈?多的解谜技巧。虽然最好的技巧便是我们自己发现的窍门,这样我们很容易??能记住它们,运用自如,不需要别人来耳提面命。但是如果完全不去观摩学习他人发展出来的技巧,而全靠自己摸索,那将是一个非常坚苦的挑战,也不是正确的学习之道!所以让我们一齐来探讨数独的解谜方法吧!
数独的解谜技巧,刚开始发展时,以直观式的唯一解及摒除法为主,对于初入门的玩家来说,这也是一般人较容易理解、接受的方法,对于一般简易级或中级的数独谜题,如果能灵活运用此二法则,通常已游刃有余。
唯一解详说
当数独谜题中的某一个宫格因为所处的列、行或九宫格已出现过的数字已达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;......如此不断循环下去,就可以将整个谜题解出了。唯一候选数法
概说
依照候选数法概说一文中,候选数表的制作规则,我们可以知道:可以填入某一个宫格的数字,一定会列于该宫格的候选数中;不在候选数中的数字,就不能填入该宫格中。
所以如果在候选数表中发现某一个宫格的候选数仅有 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>完成解
隐性三链数删减法
概说
遇到了高级、困难级的数独谜题,使得唯一候选数法和隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用是随个人之喜好的,并无限制。本页介绍的例子当然可用其他删
减法完成解题,但还是要以隐性三链数删减法优先??!
<图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啦!隐性数对删减法
概说
遇到了高级、困难级的数独谜题,使得唯一候选数法和隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用是随个人之喜好的,并无限制。本页介绍的当然就要以隐性数对删减法优先??!
<图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);
1. 如果第6 列的数字5 填到(6, 1),第4 列的数字5 就要填到(4, 5);
2. 如果第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 时,出现唯一候选数啦!
区块删减法
概说
遇到了高级、困难级的数独谜题时,唯一候选数法和隐性唯一候选数法仍有其黔驴技穷的时候;这时就是区块删减法上场的时机了,往后将要介绍的数对删减法(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啦!
关键数删减法
概说
遇到了高级、困难级的数独谜题,使得唯一候选数法和隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用是随个人之喜好的,并无限制。本页介绍的例子虽然可能可以使用其他删减法完成解题,但在大部份的情况下是无可取代的,不过本删减法成立的条件和其他方法相比稍嫌繁杂,所以一般在使用时,均将其优先顺序放在后面,只在不得已时才用之!
<图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
数独的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
数独解法
数独解题方法大全 作者:扬子活力论坛泥瓦匠整理:隱讀書生 数独这个数字解谜游戏,完全不必要用到算术!会用到的只是推理与逻辑。解题方法分两大类:直观法和候选数法。 直观法就是不需要任何辅助工具,从接到数独谜题的那一刻起就可以立即开始解题。绝不猜测。数独直观法解题技巧主要有:唯一解法、基础摒除法、区块摒除法、唯余解法、矩形摒除法、单元摒除法,余数测试法。 候选数法就是解数独题目需先建立候选数列表,根据各种条件,逐步安全的清除每个宫格候选数的不可能取值的候选数,从而达到解题的目的。 使用候选数法一般能解比较复杂的数独题目,但是候选数法的使用没用直观法那么直接,需要先建立一个候选数列表的准备过程。所以实际使用时可以先利用直观法进行解题,到无法用直观法解题时再使用候选数方法解题。 候选数法解题的过程就是逐渐排除不合适的候选数的过程,所以在进行候选数删除的时候一定要小心,确定安全的删除不合适的候选数,否则,很多时候只有重新做题了。有了计算机软件的帮助,使得候选数表的维护变得轻松起来。 数独候选数法解题技巧主要有:唯一候选数法、隐性唯一候选数法、区块删减法、数对删减法、隐性数对删减法、
三链数删减法、隐性三链数删减法、矩形顶点删减法、三链列删减法、关键数删减法、关连数删减法。 一、直观法: 1、唯一解法: 当某行已填数字的宫格达到8个,那么该行剩余宫格能填的数字就只剩下那个还没出现过的数字了。成为行唯一解。 当某列已填数字的宫格达到8个,那么该列剩余宫格能填的数字就只剩下那个还没出现过的数字了。成为列唯一解。 当某九宫格已填数字的宫格达到8个,那么该九宫格剩余宫格能填的数字就只剩下那个还没出现过的数字了。成为九宫格唯一解。 下面是例题: A行已经添入8个数字,A行只有数字3没有出现过,所以A9=3,这是行唯一解。
高难度的数独技巧窍门
-! 1 2 □ 4 D fi 1 8 9 A 8 1 3 B 7 6 1 Ei 9 A C 9 1 8 7 5 D 1 7 8 4 3 9 E 3 8 9 1 4 F 5 4 9 i 6 8 1 G 9 3 H 1 L 3 8 1 如左图,观察行 B ,我们发现除了 B3 单元格以外其余的八个单元格已经填入了 1、2、4、5、6、7、8、9,还有3没有填写, 所以3就应该填入B3单元格。这是行唯一 解法。 1 2 3 4 S 6 ? S 如左图,观察D7-F9这个九宫格, 我 们发现除了 E7单元格以外其余的八 个单元格已经填入了 1、2、3、4、6、7、 & 9,还有5没有填写,所以5就应该 填入E7单元格。这是九宫格唯一解法。 A 1 J R c D E F G E T fl 3 1. 5 B 2 41 1 3 1 ti 1 7 8 5 S 2 3 9 3 8 g 1 4 T 5 4 g T 2 3 0 a 1 2 3 1 6 1 3 e 1
! -单元唯一法在解题初期应用的几率并不高,而在解题后期,随着越来越多的单元格填上了数字, 使得应用这一方法的条件也逐渐得以满足。 △基础摒除法 基础摒除法是直观法中最常用的方法,也是在平常解决数独谜题时使用最频繁的方法。单元排除法使用得当的话,甚至可以单独处理中等难度的谜题。 使用单元排除法的目的就是要在某一单元(即行,列或区块)中找到能填入某一数字的唯一位置, 换句话说,就是把单元中其他的空白位置都排除掉。 那么要如何排除其余的空格呢?当然还是不能忘了游戏规则,由于1-9的数字在每一行、每一列、每一个九宫格都要出现且只能出现一次,所以: 如果某行中已经有了某一数字,则该行中的其他位置不可能再出现这一数字;如果某列中已经有了某一数字,则该列中的其他位置不可能再出现这一数字;如果某区块中已经有了某一数字,则该区块中的其他位置不可能再出现这一数字。 基础摒除法可以分为行摒除、列摒除和九宫格摒除。 如左图,观察D1-F3这个九宫格。由于11 格有数字9, 所以第1列其它所有单元格都不能填入9;由于B2格有数字 9,所以第2列其它所有单元格都不能填入9 ;由于D8格有 数字 9,所以行D其它所有单元格都不能填入9。这 样,D1-F3这个九宫格内只有E3单元格能够填入数字9。所 以E3单元格的答案就是9。 如左图,观察行H。由于C3格有数字4, 所以第3列其他 所有单元格不能填入数字4; 由于E8格有数字4,所以第8列其他所有单元格不能填入数 字4;由于I4格有数字4,所以G4-I6这个九宫格内其他所有 单元格不能填入数字4。这样行H中能够填入数字4的单元 格只有H9。所以H9单元格的答案就是4。
(完整版)数独教案--完整版
数独教案 基本项目 课程名称:感受数独魅力 授课对象:三到六年级学生 课程类型:逻辑思维课,选修课 教学材料:自编纲要 教学时间:一学期,每周1课时,共18课时 具体教学方案 一、指导思想 数学是神奇的世界,肯定有不少学生产生了浓厚的兴趣。为此,训练学生的思维活动是重中之重。数学思维活动在数学教学课堂中探求问题的思考、推理、论证的过程等一系列数学活动都是数学教学中实施思维训练的理论依据之一。因此,开展校本数独课程,一是能更好的促进学生数学思维能力的发展,符合课改的要求;二是填补了我们课改中的弱项。 二、教学目标 1、尊重学生的主体地位和主体人格,培养学生自主性、主动性,引导学生在掌握数学思维成果的过程中学会学习、学会创造。 2、将数学知识寓于游戏之中,教师适当穿针引线,把单调的数学过程变为艺术性的游戏活动,让学生在游戏中学习在玩中收获。 3、课堂上围绕“趣”字,把数学知识容于活动中,使学生在好奇中,在追求答案的过程中提高自己的观察能力,想象能力,分析能力和逻辑推理能力。力求体
现我们的智慧秘诀:“做数学,玩数学,学数学”。 三、教学措施 1、结合教材,精选小学数学的教学内容,以适应社会发展和进一步学习的需要。力求题材内容生活化,形式多样化,解题思路方程化,教学活动实践化。 2、教学内容的选编体现教与学的辨证统一。教学内容呈现以心理学的知识为基础,符合儿童认知性和连续性的统一,使数学知识和技能的掌握与儿童思维发展能力相一致。 3、教学内容形式生动活泼,符合学生年龄特点,赋予启发性,趣味性和全面性,可以扩大学生的学习数学的积极性。 4、每次数学思维训练课都有中心,有讨论有交流有准备。有阶段性总结和反思。 四、教学内容 数独初级入门课程
数独解题技巧
数独解题技巧 1.直观法 (1)单元限定法:此处的单元指的是行、列或者是小九宫格。使用此种方法时有三种情况:当某行、列、小九宫格有八个单元格中已有数字,空白处必定为唯一 缺少的数字。 (2)单元排除法:在某一单元(行、列、小九宫格)中找到能填入某一数字的唯一位置,也就是把单元中其他的空白位置都排除掉。 (3)区块排除法: a)当某数字在某个小九宫格中可填入的位置正好都在同一行上,因为该小九宫格 中必须要有该数字,所以这一行中不在该小九宫格内的单元格上将不能再出现 该数字。 b)在某数字在某个小九宫格中可填入的位置正好都在同一列上,因为该小九宫格 中必须要有该数字,所以这一列中不在该小九宫格内的单元格上将不能再出现 该数字。 c)当某数字在某行中可填入的位置正好都在同一小九宫格上,因为该行中必须要 有该数字,所以该小九宫格中不在该行内的单元格上将不能再出现该数字。 d)当某数字在某列中可填入的位置正好都在同一小九宫格上,因为该列中必须要 有该数字,所以该小九宫格中不在该列内德单元格上将不能再出现该数字。 (4)唯一余解法:如果某一单元格所在的行、列、小九宫格中共出现了八种不同的数字,那么该单元格可以确定地填入还未出现过的数字。 (5)矩形排除法:如果一个数字在某两行中能填入的位置正好在同样地两列中,则这两列上其他的单元格中将不能再出现这个数字;或者如果一个数字在某两列 中能填入的位置正好在同样地两行中,则这两行的其他的单元格中将不能再出 现这个数字。 (6)直观扫描法 (7)逐行、逐列扫描法 2.候选数法 (1)显示唯一法:扫描候选数栅格表,如果哪个单元格中只剩下一个候选数,就可以应用显示唯一法,在该单元格中填入这个数字,并在相应行、列、小九宫格 的候选数中删除该数字。 (2)隐式唯一法:若一个单元格内德候选数不止一个,但该单元格所在的行、列、小九宫格内,只有它含有某一个数字,那么这个单元格就可以直接填这个数字。 (3)显式对法:指在一个行、列、小九宫格中,如果有两个单元格都包含且只包含相同的两个候选数,则这两个候选数字不能再出现在该行、列、小九宫格的其 他单元格的候选数中。 (4)隐式数对法:在同一行、列、小九宫格中,如果一个数对(两个数字)正好只出现且都出现在两个单元格中,则这两个单元格的候选数中的其他数字可以被 删除。其他候选数被删除后,隐式数对就变成了显式数对。 (5)矩形顶点法:当某个候选数在某两行(列)仅出现相同两列(行)上,则这个候选数就可以从这两列(行)的其他单元格上删除掉。
数独解法技巧
数独解法(一) 九宫格摒除解 对第一次接触数独游戏,接受了1~9的数字在每一行、每一列、每一个九宫格都只能出现一次的规则后,开始要解题的玩家来说,基础摒除法绝对是他第一个想到及使用的方法,十分的自然、也十分的简易。如果能够细心、系统化的运用基础摒除法,一般报章杂志或较大众化的数独网站上的数独谜题几乎全部可解出来。只不过大部分的玩家都不知如何系统化的运用基础摒除法罢了! 基础摒除法虽然简单,但在寻找解的过程中,仍然要分成三个部分:寻找九宫格摒除解、寻找列摒除解、寻找行摒除解。不要说是初入门者,即使是很多未接受过本讯息者,也常常会遗漏了行、列摒除解的寻找。对一些粗心的玩家来说,即使是九宫格摒除解也常被跳着做,所以解起题来就会感到不是十分顺手。 1.九宫格摒除解的寻找 九宫格摒除解的系统寻找是由数字1开始一直到数字9,周而复始,直到解完全题或无解时为止;每个数字又需从上左九宫格起,直到下右九宫格,周而复始,同样要不断重复到解完全题或无解时为止。
<图2.1.1> 以<图2.1.1>的解题为例:先从数字1开始,并由上左九宫格起寻找九宫格摒除解,会影响上左九宫格的数字,一定存在第1列~第3列以及第1行~第3行如<图2.1.2>的绿色区域。 <图2.1.2> 本区域已存在的数字1共有两个,它们分别存在(2,9)及(5,1);其中(2,9)的1将摒除第2列其它宫格再填入数字1的可能,因为依照规则每一列只能有一个数字1,如果再在本列填入数字1,那么本列就会有两个1了。同理,(5,1)的1则将摒除第1行其它宫格再填入数字1的可能,其示意图如<图2.1.3>。
<图2.1.3> 对上左九宫格的摒除仅能到此地步,我们可以很容易的发现:本九宫中还有3个宫格不在被摒除的区域中,意即:这3个宫格都仍有可能填入数字1,依不可猜测的原则,本九宫格暂时不予处理。 接下来我们要尝试在上中九宫格寻找是否有九宫格摒除解1:会影响上中九宫格的数字,一定存在第1列~第3列以及第4行~第6行。本区域已存在的数字1共有3个,它们分别存在(2,9)、(4,6)及(9,5),其摒除的范围示意图如<图2.1.4>。 <图2.1.4>