数独的7种解法_第1页
数独的7种解法_第2页
数独的7种解法_第3页
数独的7种解法_第4页
数独的7种解法_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、 法吧!数独的解谜技巧,刚开始发展时,以直观式的唯一解及摒除法为主,对于初入门的玩家来说,这也是一般人 较容易理解、接受的方法,对于一般简易级或中级的数独谜题,如果能 灵活运用此二法则,通常已游刃有余。行或九宫格已出现过的数字已达8个,那么1.唯一解法当数独谜题中的某一个宫格因为所处的列、图1 (9, 8)出现唯一解了图1是最明显的唯一解出现时机,请看第8行,由(1,8)(8,8)都已填入数字了,8行中还没出现过的数字了!只剩(9,8)还是 空白,此时(9,8)中应填入的数字,当然就是第请一个个数字核对一下,哦!是数字 8还没出现过,所以(9,8)中该填入的数字就是数字29:5 I86787A

3、21146 '8712664孑875|£I75934图2 (8, 9)出现唯一解了图2是另一个明显出现唯一解的情形,请看第8列,由(8,1)(8,8)都已填入数字了,只剩(8,9)还是 空白,此时(8, 9)中应填入的数字,当然就是第 8列中还没出现过的数字 了!请一个个数字核对一下,哦!是数字9还没出现过,所以(8, 9)中该填入的数字就是341 !56I2569771269了822169579587341数字9 了。图3亿5)出现唯一解了图3是另一种明显出现唯一解的情形,请看下中九宫格,在这个九宫格中除了(7, 5)还是空白外,其他宫格都已填有数字了,所以(7, 5)中应

4、填入的数字,当然就是下中九宫格中还没出现过的数字了!请一个个数字核对一下,哦!是数字 1还没出现过,所以(7, 5)中该填入的数字就是数字49357263542869176935428951864图4 一般情形下的唯一解类似 图1 图3这种明显出现唯一解的情形,在一般情形之下及解题初期是不太 可能出现的! 图4是一个最典型的简易级数独谜题,如果单纯观察某一个行、列或九宫 格,没有一处是已出现8个数字的, 难道如此就无解了吗?非也!非也!在此图中,出现唯一解的宫格其实有 3处之多!你能找出来吗?没错,在一般情形之下及解题初期,唯一解的寻找必须综合所处的行、列及九宫格三者,同时过滤筛选出已出现的数

5、字才行!如果漏掉其一,可能就无法找出唯一解的出现位置了。现在且不忙着填入数字,先来找找看图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、& 9。能用来填入的数字确实只剩数字1这个唯一的解了。第二个唯一解位置在(8, 7) : (8, 7)所处的第8列中已出现的数字是:1、2、8、6。所 处的第7

6、行中 已出现的数字是:3、9、5、4。至于所处的下右九宫格中,已出现的数字是:4、6、5。所以综合而言,受其所处位置的行、列及九宫格影响,不得再使用并填入(8, 7)的数字计有:1、2、3、4、5、6、& 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这个唯

7、一的解了。以上所谓的三个唯一解位置,是以 图4现况未填入任何数字之前而言,如果开始填入数字,出现唯一解的位置可能将随之增加。例:当(8, 7)填入数字7之后,(7, 7)将出现唯一解1 ;如果再将数字 1填入亿7),在(7, 8)又将出现唯一解 3 ;如此不断循环下去, 就可以将整个谜题解出了。2. 唯一候选数法概说依照候选数法概说一文中,候选数表的制作规则,我们可以知道:可以填入某一个宫格的数字,一定会列于该宫格的候选数中;不在候选数中的数字,就不能填入该宫格中。所以如果在候选数表中发现某一个宫格的候选数仅有i个数字,那就是表示:不必再考虑了!这个宫格就是 只能填入这个数字啦!如果填入别的数

8、字,就会违反数独的填制规则的。利用 找出候选数表中,候选数仅有1个数字的宫格来,并填入该候选数”的方法就叫做唯一候选数法(Singles Candidature, sole Candidate)。唯一候选数法示例36 yo3 b f$却f4rb Qr50 丹 日435718982A 7392635£ d d4751847924HV > 譯f9fr; -Jr 斗O f163-Ti r|Li C'l246可14b1 4 H7Ao54斗<31盒"LJ图1数独谜题的候选数表图1是我们在候选数法概说一文中完成的候选数表,其中有好几个宫格的候选数都 只有1个,所以可

9、以利用唯一候选数法来进行填制。先还不要填入数字,我们先来找找看, 有哪些宫格有 唯一候选数?在(2, 7)有唯一候选数 7。在(5, 5)有唯一候选数 5。在(8, 3)有唯一候选数 3。哇!同时出现了 3个唯一候选数啊!那么,先填入哪一个会不会影响填制结果呢?当然不会了,只要你高兴,喜欢先填哪一个都没问题的。好,就在这3个宫格中填入他们的唯一候选数吧,填制结果如 < 图2> :Q"-(id "Z"xihi f95| #4rjifTi423吕1819182392r63541 351518924619Z4 7并 U "TP" 冲

10、9;4 f63261 I± H冯95! IQ<图2>哇!又有唯一候选数出现了呢!没错,一般简易级的数独谜题,如果使用直观式的唯一解法及摒除法来解题, 即使是数独老手,也要花费相当的工夫才能完成;但是如果采用唯一候选数法,从候选数表制作完成开始,唯一候选数将一个一个接连不断的出现,轻轻松松的 就可以完成解题啦! <图 3> 是 < 图 1> 的完成解94635184518989235926351246358193 151879246196326357635187924图3完成解3. 隐性三链数删减法概说遇到了高级、困难级的数独谜题,使得唯一候选数法和

11、隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用是随个人之喜好的,并无限制。本页介绍的例子当然可用其他删减法完成解题,但还是要以隐性三链数删减法优先? !<图1>请看 < 图1>的第2列,数字1、7、8只出现在(2, 1)、(2, 7)和(2, 8)这三个宫格的候选 数中;这时 隐性三链数删减法的条件已成立了!这表示第 2列的数字1、7和8将只能 填到这三个宫格中,因为:如果让别的数字填入这三个宫格之中后,这三个相异的数字能填入的可能宫格就只剩下两个, 而那是 不可能的事!所以若这三个宫格的候选数中还有其他数 字,全部是多余无用

12、的,它们已不可能再用来填入这些宫格中了,所以可以毫不考虑的把它们删减掉。于是(2, 7)和(2, 8)这两个宫格候选数中的6都可被安全的删减掉;其中(2, 7)的候选数少了数字6,将使得(8, 7)出现行隐性唯一候选数6,于是可用隐性唯一候选数法来填入下一个解了。整理一下:当某3个数字仅出现在某列的某三个宫格候选数中时,就可以把这三个宫格的候选数删减成该3个数字。同理,当某3个数字仅出现在某行的某三个宫格候选数中时,就可以把这三个宫格的候选数删减成该3个数字。当然,当某3个数字仅出现在某个九宫格的某三个宫格候选数中时,就可以把这三个宫格的候选数删减成该 3个数字。利用 找出某3个数字仅出现在某

13、行、某列或某一个九宫格的某三个宫格候选数中的情形,进而将这三个 宫格的候选数删减成该3个数字”的方法就叫做隐性三链数删减法(HiddenTriples)。本法其实为隐性数对删除法的推广,而且还可以继续加以推广:隐性四链数删减法就是:找出某4个数字仅出现在某行、某列或某一个九宫格的某四个宫格候选数中 的情形,进而将这四个宫格的候选数删减成该4个数字”的方法。隐性五链数删减法就是:找出某5个数字仅出现在某行、某列或某一个九宫格的某五个宫格候选数中 的情形,进而将这五个宫格的候选数删减成该5个数字”的方法。如果愿意的话,你确实是可以这样推广的,只是,实用上是否有其应用的价值或空间呢? 隐性三链数删减

14、法示例隐性三链数删减法一共有3种状况:第一种发生在行、第二种是发生在列、第三种则发生在九宫格。 图1就是 发生在列的例子了,其他的情况举例如下:714G q:321 -150a r: pa吃587493625g36CJ71 4051 -4(58912733pF1 fidH88167O2=Si4J , ( j3| 专 Jlj tr |211) z'片1 J' ci8934657 g4576931<图2>只出现在(4,4、9以外的9 ; (6, 4)的候图2是隐性三链数删减发生在行的例子:图中第4行的数字2、4、94)、(5, 4)及(6, 4)这三个宫格的候选数中,所

15、以可以将三个宫格候选数中2、数字安全的删减掉,(4, 4)的候选数删减成2、4 ; (5, 4)的候选数删减成2、4、选数删减成 9 ;出现了唯一候选数啦!1 C3B2597374kitjtJ569"2"14127565136746a46214bu8y1Q314b23714859130F *f107574电1892| *7£片 f5394j.|T1R图3图3是隐性三链数删减发生在九宫格的例子:图中中央九宫格的数字2、5、9只出现在(5, 4)、(5, 6)及(6, 4)这三个宫格的候选数中,所以可以将三个宫格候选数中2、5、9以外的数字安全的删减掉, (5, 4)

16、的候选数删减成2、5、9 ; (5, 6)的候选数删减成2、5 ; (6, 4)的候选数删减成 9 ;出现了唯一候选数啦!286739753145274冇3198134i .jS76261jr >E_. !45315o£327s493462萨?457178314 9526<图4>像 图1 图3这样只经一次删减就出现下一个解的情况当然不错了,但有时可没法这样顺心,图4就是一个例子。下一个解将出现在(5, 6)这个宫格,你能找出该填入什么数字吗?以目前所学到的方法,要解出下一个解,需要二个步骤:先看中左九宫格吧!由于只剩 (5, 1)(5, 3)这个区块尚未填入数字,所

17、以可用区块删减法将 第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. 隐性数对删减法概说遇到了高级、困难级的数

18、独谜题,使得唯一候选数法和 隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用是随个人之喜好的,并无限制。本页介绍的当然就要以隐性数对删减法优先? !(5"9'*i|r81 J'JL- 騎 -iG3i 34 7269pT'56537895吕1 3b78-Hi-76丁萨4879tir* "Ti cq571已3421 34® 曰吕i1391 3425713 1?3冲y18X3. Ti f34 JF 1<图1>请看 < 图1>的上右九宫格,数字8、9都只出现在(2, 8)和(2, 9

19、)这两个宫格的候选数中; 这时隐性数对删减法的条件已成立了!这表示上右九宫格的数字8和9将只能填到这两个宫格中,而且:如果数字8将填入(2, 8),那么(2, 9)就一定要填入数字9;反之,如果数字9将填入(2, 8),那么(2, 9)就一定要填入数字8 ;不论哪一个状况出现,(2, 8)和(2, 9)这两个宫格的候选数中若还有其他数字,全部是多余无用的,因为这两个宫格若填入数字& 9以外的数字,那么上右九宫格的数字8或9就将无处可填了。候选数的意义是可能填入该宫格的数字,而这两个数字以外的数字已不可能再用来填入本宫格中了,所以可以毫 不考虑的把 它们删减掉。当(2, 8)和(2, 9

20、)这两个宫格的候选数都安全的删减成数字 后,(2, 5)出现了列隐性 唯一候选数 2,于是可用隐性唯一候选数法来填入下一个解了。整理一下:当某个数对仅出现在某个九宫格的某两个宫格候选数中时,就可以把这两个宫格的候选 数删减成该数对。同理,当某个数对仅出现在某列的某两个宫格候选数中时,就可以把这两个宫格的候选 数删减成该数对。当然,当某个数对仅出现在某行的某两个宫格候选数中时,就可以把这两个宫格的候选 数删减成该数对。利用 找出某个数对仅出现在某行、某列或某一个九宫格的某两个宫格候选数中的情形,进而将这两个 宫格的候选数删减成该数对”的方法就叫做隐性数对删减法(Hidden Pairs)。当隐性

21、数对删减法完成后,通常还可引发数对删减法;以 图1为例,当(2, 8)和(2, 9) 这两个宫格的候选数 都安全的删减成数字 8、9之后,还可利用数对删减法把 (2, 1)、(2, 2)、(2, 3)这三个c格候选数中的数字 8删减掉。隐性数对删减法示例隐性数对删减法一共有3种状况:第一种发生在行、第二种是发生在列、第三种则发生在九宫格。 图1就是 发生在九宫格的例子了,其他的情况举例如下:953416287&48973254)983©7279462914358627471 397S496汐1987(3, 2)及4、6 ;<图2>图2是隐性数对删减发生在行的例子:

22、图中第 2行的数对4、6只出现在(9, 2)这两个宫格 的候选数中,所以可以将(3, 2)及(9, 2)的候选数安全的删减成数对而经此一删,(3, 3)宫格出现 了列隐性唯一候选数1啦!165897魁96285746325ley448732873192356b68919a637491<图3>图3是隐性数对删减发生在列的例子:图中第7列的数对4、7只出现在(7, 1)及亿8)这两个宫格 的候选数中,所以可以将(7, 1)及(7, 8)的候选数安全的删减成数对4、7 ;而经此一删,(8, 1)宫格出现 了行隐性唯一候选数2啦!三链列删减法概说遇到了高级、困难级的数独谜题,使得唯一候选数

23、法和 隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用是随个人之喜好的,并无限制。本页介绍的例子当然可用其他删减法完成解题,且本删减法成立的条件 和其他方法相比稍嫌繁杂,但为了介绍,在进行解题时还是要以三链列删减法优先? !-吕2;吕79y9丨4£?4 y斗785687954834821797958697453698728791469575969<图1>1、5、8行的宫格候选数中;这请看 图1第1、4、6列的数字5,都只出现在第 填到第1、4、6列了,因为:第1列的数字5只出现在(1, 1)及(1,8),所以数字5只能 填到这两个

24、宫格;时三链列删减法的条件已成立了!这表示第1行、第5行及第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来

25、填入了,所以若其他宫格的候选数中还有数字5,全部是多余无用的,可以毫不考虑的把它们删减掉。于是(5, 1)、(5, 5)、(9, 5)和(1,8)、(2, 8)这五个宫格候选数中的5都可被安全的删减掉;其中(9, 5)的候选数少了数字5,将使得(9, 4)出现列隐性唯一候选数 5 ,于是 可用隐性唯一候选数法来填入下一个解了。整理一下:当某个数字在某三列仅出现在相同的三行时,就可以把这三行其他宫格候选数中的该数字删减掉。同理,当某个数字在某三行仅出现在相同的三列时,就可以把这三列其他宫格候选数中的该数字删减掉。利用找出某个数字在某三列仅出现在相同三行的情形,进而将该数字自这三行其他宫格候选数中

26、删减掉”;或 找出某个数字在某三行仅出现在相同三列的情形,进而将该数字自这三列其他宫格候选数中删减掉”的方法就叫做三链列删减法(Swordfish)。本删减法其实是矩形顶点删减法的推广,如果你愿意的话,还可以继续推广:四链列删减法:利用 找出某个数字在某四列仅出现在相同四行的情形,进而将该数字自这四行其他宫格候选数中删减掉”;或找出某个数字在某四行仅出现在相同四列的情形,进而将该数字自这四列其他 宫格候选数中删减掉”的方法五链列删减法:利用 找出某个数字在某五列仅出现在相同五行的情形,进而将该数字自这五行其他宫格候选数中删减掉”;或找出某个数字在某五行仅出现在相同五列的情形,进而将该数字自这五

27、列其他 宫格候选数中删减掉”的方法六链列删减法: 不过如果真的这样做,实际应用时,能够用上的机率大概不多就是了。遇到了高级、困难级的数独谜题,使得唯一候选数法和隐性唯一候选数法黔驴技穷的时候,虽然你可以优先使用三链列删减法来寻找下一个解;但大部分的人在 使用删减法的优先顺序上,通常都会将三链列删减法排在稍后一点,为什么要如此安排,在实际使用一段时间之后, 相信你自能体会了,但这个方法又是不可或缺的,如果不会运用本删减法,有很多高级的数 独谜题就将无解了。三链列删减法示例三链列删减法只有 2种状况:第一种的删减发生在行、 第二种的删减发生在列。 < 图1> 就是 删减发生在行的例子了

28、,第二种的情况举例如下:1849583286458961-53494318i R9753326.is71495171 7326817826935K<图2>图2是三链列删减发生在列的例子:图中第3、5、8行的数字2只出现在第3、4、5列,所以可以将数字 2自(4, 6)、(5, 6)的候选数中安全的删减掉,其中(5, 6)的候选数由 2、5删减成5时,出现唯一候选数啦!5. 区块删减法概说遇到了高级、困难级的数独谜题时,唯一候选数法和隐性唯一候选数法仍有其黔驴技穷 的时候;这时就是区块删减法上场的时机了,往后将要介绍的数对删减法(Naked Pairs)、隐性数对删减法(Hidden

29、 Pairs)、三链数删减法(Naked Triples)、隐性三链数删减法(HiddenTriples)、矩形顶点删减法(X-Wing)、三链列删减法(Swordfish)都具有类似的特性:使用这 些技巧的目的仅在删减候选数的数目,删减之后,还是得使用唯一候选数法和隐性唯一候选 数法来 找出下一个解并填入数字的。当使用唯一候选数法或隐性唯一候选数法找不出下一个解时,到底该先使用哪一个删减法呢?随您高兴的用吧!如果你比较擅长使用数对删减法,那就先用数对删减法吧! 如果你认为区块删减法比较好用,那就先用数对删减法吧!;介绍时总有先后的次序,但并不表示先介绍的就较好用或必须先用哦!只要能达到:安全

30、删减掉候选数,并找出下一个解的目的,使用哪一种删减法都是可以的。524S7'33193d曰L J527Q891 76443791192587£ O764勺 J528fS /9152J'S /86Q5<图1>请看图1,这时若使用唯一候选数法或隐性唯一候选数法是找不出下一个解来的!就先来试试区块删减法吧。请观察第9行:数字1在本行各宫格的候选数中,是不是仅出现在(1,9)(3,9)的这一个区块中?太好了,区块删减的条件已有了;因为这表示第9行的数字1只能填在(1,9)(3,9)的这一个区块中,而不论填在本区块的哪一个宫格中,上右九宫格的其他宫格将因本九宫格已出

31、现数字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将来会被填到本区块的哪一

32、个宫格中,将使得数字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啦!:当某一个数字只出现在某行的某一个区块候选数中时,就可以把该数字自包含该区块的九宫格之其他 区块候选数中删减掉。同理,当某一个数字只出现在某列

33、的某一个区块候选数中时,就可以把该数字自包含该区块的九宫格之其他 区块候选数中删减掉。同理,当某一个数字只出现在某个九宫格的某一个区块候选数中时,就可以把该数字自包含该区块的行或列之其他区块候选数中删减掉。并将该数利用找出某一行、某一列或某一个九宫格各个区块候选数中只出现一次的数字来,字自包含该区块的另一个行、列或九宫格的其他区块候选数中删减掉”的方法就叫做区块删减法 (Locked Can didates, Sin gle Sector Can didates)。区块删减法示例区块删减法一共有 4种状况:第一种是发生在行而去删减九宫格、第二种是发生在列而去删减九宫格、第三种是发生在九宫格而去

34、删减行、第四种是发生在九宫格而去删减列。图1就是发生在行而去删减九宫格的例子了,其他的情况举例如下:537618915749628343491256877492836149158'93 '| *3 O 斗738946<图2>图2是发生在列而去删减九宫格的例子:因为第 3列的数字6只出现在(3, 1) (3, 3)这一个区块, 所以可以将上左九宫格的另两个区块(1, 1)(1,3)、(2, 1)(2, 3)候选数中的数字 6安全的删减掉; 于是(1, 1)的候选数2、6将被删减成2,出现了唯一候选数啦!691433652217321664916849829824735

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

36、 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就需要删减三次才得到下一个解,不过那还算好的了,因为三次的删减都恰好发生在同一个区块中,请看下面发生在不同区块

37、的情形吧!413阳!J568235741 RQ56 7O149o3r- -r ryr玄6 75349178f JL. O5廿7吕9f19652j35pe76783-4-,.3 > Py13494 5 86<图5>图5中的(4, 3)将可利用区块删减法得出下一个解,你能够不看下面的解答,自己找 出来吗?试试!也许你已经找出答案了,恭喜!也许你还找不出答案,那也没关系,人有失手,马有失蹄,总有脑袋被浆糊糊住而一时失误的时候,请看答案吧:因为第8列的数字2只出现在(8, 1)(8, 3)这一个区块,所以可以将下左九宫格的另两个区块(7, 1)(7, 3)、(9, 1)(9,3)候选

38、数中的数字 2安全的删减掉;删减之后的结果如 图6。4gr 35bi829351 6874-1f nLJ r o4298352 7 til34£a9177B煜5t>7 Sy-4567ftQi9865-r 口2吕356 '767831l_l6<图6>接下来,因为第3行的数字2只出现在(4, 3)(6, 3)这一个区块,所以可以将中左九宫格的另两个区块(4, 1)(6, 1)、(4, 2)(6, 2)候选数中的数字 2安全的删减掉;删减之后的结果如 图7。4CZr131 5S235741 SyL尸1JT "TTini "> jr4293

39、j Z o5-.34670O4G7B-T flBE)B9*上严9657 B235672 &9671-49834S91直?JI r l a i6<图7>哈!哈!看出来了吗?(4, 3)已出现了列隐性唯一候选数 2啦!6. 关键数删减法概说遇到了高级、困难级的数独谜题,使得唯一候选数法和隐性唯一候选数法黔驴技穷的时 候,就是各种删减法上场的时机了。在各种的删减法中,哪一个要先用是随个人之喜好的, 并无限制。本页介绍的例子虽然可能可以使用其他删减法完成解题,但在大部份的情况下是 无可取代的,不过本删减法成立的条件和其他方法相比稍嫌繁杂,所以一般在使用时,均将 其优先顺序 放在后面

40、,只在不得已时才用之!2834匕5695253924127965442577954215932794357234曲1273185<图1>请看 图1,此时使用以往所提及的:数对删减法、区块删减法、隐性数对删减法、三链数删减法、隐性三链数删减法、矩形顶点删减法、三链列删减法等各式删减法都已找不到下一个解了,这才是关键数删减法(Colors, Colouring)最好的上场时机。某一个数字在某一行、某一列或者某一个九宫格的各宫格候选数中恰出现两次时,我们说在 这一行、这一列或者这一个九宫格中有了一个关键数。由于使用本删减法的时机是在数独填制的中后期,所以拥有同一个关键数的行列或九宫格通常

41、不止一处,而且环环相扣,使得候选数中包含该关键数的宫格形成泾渭分明的两大阵营;图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中底色为粉红及浅蓝的两组宫格,就具有这样的性质。接下来,

42、我们就可以根据这两组宫格的分布情形,做一些确切的判定:当在底色为浅蓝的宫格中填入数字4时,并无任何不妥!若在底色为粉红的宫格中填入数字4时,则第7列或第7行都将出现两个数字 4,这是违反填制规则的。所以所有底色为粉红的宫格都不可能填入数字4,这些宫格候选数中的数字4,全部都可以删减掉!回到 图1,我们可发现,进行删减之后,下一个解的寻找根本就不成任何问题了。大部分情况下,禾U用行列及九宫格的关键数将相关宫格区分为两组后,并不一定可找出上述的矛盾状况, 而确切的据以判定某一组宫格可进行候选数的删减,例如< 图3>就是一个例子:由第 9列的关键数 6所引发区分的两组宫格,不论将数字6填

43、到粉红或浅蓝为底色的宫格中,都是不会产生矛盾的。28|65|n665253926461796442157p9564215669327965261731685<图3>不过 <图3>却展示了关键数删减法的另一种删减状况;请看第1列中的(1, 5)及(1,8),它们有什么 特殊之处呢?尤怪居然要用浅绿的底色来标示!哈!哈!相信你已看出来了,在这两个宫格的同一行上,都有两个不同底色的宫格存在,这代表:不论最后 数字6应填到哪一组底色的宫格中,因为本行的数字 6已被填入了,所以这两个宫格都不可能再填入数字6 了,因此这两个宫格的候选数6都可被安全的删减掉!1分布如 < 图4

44、>为了更清楚的说明这类的删减,假设有某个数独残局的数候选数111111111111111<图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都可安全的删减掉!利用 以关键数的关系找出矛

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论