隐性三链数删减法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

隐性三链数删减法
概说
遇到了高级、困难级的数独谜题,使得唯一候选数法和隐性唯一候选数法黔驴技穷的时候,就是各种删减法上场的时机了。

在各种的删减法中,哪一个要先用是随个人之喜好的,并无限制。

本页介绍的例子当然可用其他删减法完成解题,但还是要以隐性三链数删减法优先啰!
<图 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啦!
区块删减法
作者:尤怪之家
概说
遇到了高级、困难级的数独谜题时,唯一候选数法和隐性唯一候选数法仍有其黔驴技穷的时
候;这时就是区块删减法上场的时机了,往后将要介绍的数对删减法(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啦!。

相关文档
最新文档