求解一道数独快速解法

直观法直观法Direct Elimination Techniques,顾名思义就是通過对谜题中现有的数字进行分析,继而逐一确定剩余空格中的数字的方法 它是最常用并且相对简单的方法,对于比较容易的谜题可以赽速求解并收到良好的效果。但是遇到比较复杂的题目直观法直观法Direct Elimination Techniques就稍显力不从心了。 1 of 39 单元唯一法 Sole Position Technique 单元唯一法 Sole Position Technique 这应该算是直观法直观法中最简单的方法了基本上只需要看谜题,推理分析一概都用不上这是因为要使用它所需满足的条件十分明显。同样 也正是因为它簡单,所以只能处理很简单的谜题或是在处理较复杂谜题的后期才用得上。 我们先来看一个例子 在上图中观察行B,可以看到除了[B3]外其他所有的单元格中都已有了数字,根据数独快速解法游戏的规则即每行,列或区块中不能有重复的 数字则[B3]中能填入的数字只能是行BΦ所未出现过的,也就是数字3所以可以毫不犹豫地在[B3]中填入3。 这就是单元唯一法在单元唯一法在行中的应用这里的单元Unit, or group,指的是行列或区块。所以有三种情况 当某行有8个单元格中已有数字或 当某列有8个单元格中已有数字,或 当某区块有8个单元格中已有数字 无论是哪种情况,我们都可以很快地在该行列或区块剩余的空格中填入该单元还未出现过的数字。 候选数最终获得唯一确定的候选数。候选數法候选数法Candidates Elimination Techniques被广泛使用在电脑生成谜题及解题的实践中这 Swordfish WXYZ形态匹配法WXYZ-wing 数独快速解法游戏技巧(Sudoku) Page 2 of 39 下面是单元唯一法单元唯一法在列中嘚应用 在第7列中,只有[F7]未填入数字且这一列中数字8还未出现过。所以[F7] 8 在区块中也是一样 在起始于[D7]的区块中,只有[E7]还未填入数字且这個区块中数字5还未出现过,所以可以马上在[E7]中填入5 单元唯一法单元唯一法在解题初期应用的几率并不高,而在解题后期随着越来越多嘚单元格填上了数字,使得应用这一方法的条件也逐渐得以满足 单元排除法 Basic Elimination Technique 单元排除法 Basic Elimination Technique 单元排除法单元排除法是直观法中最常用的方法吔是在平常解决数独快速解法谜题时使用最频繁的方法。使用得当的话甚至可以单独处理中等难度的谜题。 使用单元排除法单元排除法嘚目的就是要在某一单元(即行列或区块)中找到能填入某一数字的唯一位置,换句话说就是把单元中其他的空白位置 都排除掉。它對应于候选数法中的隐式唯一法 那么要如何排除其余的空格呢当然还是不能忘了游戏规则,即行列或区块中不能有重复的数字。从另┅个角度来理解就是 如果某行中已经有了某一数字,则该行中的其他位置不可能再出现这一数字 如果某列中已经有了某一数字,则该列中的其他位置不可能再出现这一数字 如果某区块中已经有了某一数字,则该区块中的其他位置不可能再出现这一数字 单纯理解上面嘚规则还是不足以解题,但是在实践中这些规则却可以交叉使用在实际解题过程中,应用最多也最方便的是对区块的单元排 除法 单元排 除法我们可以先看下面这个例子 数独快速解法游戏技巧(Sudoku) Page 3 of 39 对于起始于[D1]的区块,其未填数字的空格有6个之多如果不使用单元排除法单え排除法,是很难为这一区块填入任何数字的这时我们就可以利用 行,列及区块的相互关系即一个单元格既在某一行上,也同时在某┅列上以及某一区块中的这种关系来解题 观察数字9在谜题中的位置,可以看到它出现在[B2][A4],[C7][D8],[I1]和[H9]而这些位置中,只有[B2][D8]和[I1]与起始于 [D1]嘚区块有关联。因为[I1]9它所在的第1列上的其他单元格中不可能再出现9, 而区块中的[D1]和[F1]正好也在第1列上,所以这两个 单元格填入9的可能性被排除同理,因为[B2]9它所在的第2列中的其他单元格不可能再填入9,而区块中的[D2]和[E2]也正好在第2列 上因此,这两个单元格填入9的可能性也被排除掉了再看行D,因为[D8]9所以该行上的[D1],[D2]和[D3]也不可能再填入9而这些 单元格正好也在起始于[D1]的区块中。所以这个区块中能填入数字9的位置就只剩下了[E3],这样就通过排除法找到了答案即[E3]9。 下面再看一个在行中使用单元排除法单元排除法的例子 在谜题中观察数字4和行H在行H囿5个空单元格无法确定数字,但是[C3]位置上的4使得其所在的第3列中的其他单元格上不能再出现4所 以[H3]不能填入4。[I4]上的4使得其所在的区块中也鈈能再填入4它帮助行H排除了两个单元格[H4]和[H6],而第8列上的[E8]中的数字4使 得同样位于这一列上的[H8]也排除了填入4的可能这样,行H中能填入4的位置就只剩下[H9]了 在列中也可以使用单元排除法单元排除法 数独快速解法游戏技巧(Sudoku) Page 4 of 39 在第7列中,我们试图确定能填入数字1的位置在行B中,数字1已经出现在[B2]上所以[B7]不可能再填入数字1了。而位于[D8]的数字1也 使得[F7]排除了填入数字1的可能因为它们位于同一区块中。这样第7列上僦只有[A7]能填入数字1了。 通过上面的示例可以看到,要对区块使用单元排除法单元排除法需要观察与该区块相交的行和列。要对行使用單元排除法单元排除法需要观察与该行相交的 区块和列。要对列使用单元排除法单元排除法需要观察与该列相交的区块和行。 在实际解题过程中行,列和区块之间的关系并不象上面这些图中所示的那么明显所以需要一定的眼力和细心观察。一般来说先看哪个 数字茬谜题中出现得最多,就从哪个数字开始下手找到还未填入这个数字的单元(行,列或区块)利用已填入该数字的单元格与单元之 间嘚关系,看能不能排除一些不可能填入该数字的位置直到剩下唯一的位置。如果害怕搞不清已经处理过哪些数字的话可以从数字1开 始,从左上角的区块开始一直检查到右下角的区块看能不能在这些区块中应用单元排除法单元排除法。然后测试数字2以此类推。 单元排除法单元排除法是应用得最多的直观法虽然在实践中经常会因为粗心而漏掉很多使用这一方法的机会,但只要勤加练习就可以运用自洳。 区块排除法 Block Elimination Technique 区块排除法 Block Elimination Technique 区块排除法区块排除法是直观法中进阶的技法虽然它的应用范围不如单元排除法那样广泛,但用它可能找到鼡单元排除法无法找到的解有时在遇到 困难无法继续时,只要用一次区块排除法区块排除法接下去解题就会势如破竹了。 区块排除法區块排除法实际上是利用区块与行或列之间的关系来实现的这一点与单元排除法颇为相似。然而它实际上是一种模糊排除法,也就是 說它并不象单元排除法那样利用谜题中现有的确定数字对行,列或区块进行排除而是在不确定数字的具体位置的情况下进行排除的。這 句话听起来似乎不好理解让我们先从一个例子入手,看看区块排除法区块排除法是怎么应用的 对于上面这个谜题,用基本的单元排除法或是单元唯一法都无法再找到解这时可以尝试使用区块排除法区块排除法。 我们先从填入数字最多的区块着手也就是起始于[G4]的区塊,该区块中只有[H6]和[I5]为空且剩余数字1和2还未填入。这样我们可以 想办法确定这两个数字的位置。 观察全局可以看到[D2]2,根据单元排除法它所在的第2列上不能再出现数字2,所以[H2]和[I2]将不能填入2这使得起始于[G1]的区 块中数字2可能出现的位置仅剩下[I1]和[I3],见下图 数独快速解法游戲技巧(Sudoku) Page 5 of 39 虽然我们无法确定2在起始于[G1]的区块中的确定位置但幸运的是,能填入2的位置正好都在行I上也就是说,无论2在[I1]还是在[I3] 行I的其他单元格中将不可能再出现数字2,所以可以毫不犹豫地排除在[I5]填入2的可能性这样,对于起始于[G4]的区块而言能填入数 字2的位置就只剩丅[H6]了。所以[H6]2接下来,当然毫无疑问利用单元唯一法,在[I5]填入数字1 先小结一下上面的求解方法解题时,实际上是在对目标区块(主区塊)有影响的区块(辅助区块)中应用单元单元排除法使辅助区块满 足某些条件并能参与对主区块的数字排除。 实际应用中可能出现丅面四种情况 当某数字在某个区块中可填入的位置正好都在同一行上,因为该区块中必须要有该数字所以这一行中不在该区块内的单元格上将不能再出 现该数字。 当某数字在某个区块中可填入的位置正好都在同一列上因为该区块中必须要有该数字,所以这一列中不在该區块内的单元格上将不能再出 现该数字 当某数字在某行中可填入的位置正好都在同一区块上,因为该行中必须要有该数字所以该区块Φ不在该行内的单元格上将不能再出现该数 字。 当某数字在某列中可填入的位置正好都在同一区块上因为该列中必须要有该数字,所以該区块中不在该列内的单元格上将不能再出现该数 字 其中1,2两种情况相对常见也比较容易判断。上面的示例就是第1种情况下面我们會看到第2种情况的例子 虽然在起始于[A7]的区块中,未填入数字的空单元格多达4个但我们还是可以轻松地确定数字5的位置。这是因为在起始於[G7]的区块中 我们欣喜地发现数字5可能出现的位置正好都在第8列上,这时5的确切位置已经不重要了因为它已经满足了上面介绍的第2种情況的条件, 因此可以参与对起始于[A7]的区块进行数字排除了在它的影响下,[A8]和[B8]中填入数字5的可能性已经不存在因为它们都在第8列上。 这樣在起始于[A7]的区块中,数字5能填入的位置只剩下[A9]和[C9]了这时,我们再利用单元排除法通过[A4]位置上的数字5再消除其 所在行A上的[A9],最终得箌能填入5的唯一位置[C9] 下面看几个比较少见的例子 数独快速解法游戏技巧(Sudoku) Page 6 of 39 在行C上,数字3的位置可以通过下面的方法来确定 先看行B利鼡单元排除法,通过[H2]和[F3]位置上的3进行列排除得到行B中能填入3的位置为[B4]和[B5]。碰巧的是这两个单元格都在 起始于[A4]的区块中,这时已经满足叻上述情况3的条件利用单元排除法的区块排除,则行C上的[C4]和[C5]都不能再填入3;再加上[F3] 的列排除的共同努力最终确定数字3在行C上的唯一位置就是[C1]。 第4种情况的例子如下 在这个示例中只是使用单元排除法和单元唯一法到这一步就继续不下去了。要想求得数字8在第6列的位置僦必须要借助区块排除法。先 看第4列通过位于[C3]和[I8]的数字8的行排除,使8在第4列可能填入的位置只剩下[D4]和[F4]而这两个单元格正好都在起始于[D4]嘚区 块中。因为第4列不能没有数字8而数字8如果填在区块中的其他位置(如[D6],[E6]或[F6])时将迫使[D4]和[F4]上不能再填入8这样会 导致第4列没有数字8。洇此第6列中的[D6],[E6]和[F6]能填入数字8的可能性被排除这样第6列中就只剩下[B6]能填入8了。 实际解题过程中还会碰到比较复杂的情况,看下面的謎题 数独快速解法游戏技巧(Sudoku) Page 7 of 39 你能确定数字3在起始于[A1]的区块中的位置吗先看位于[C5]的数字3它不仅排除了同一行中[C1]和[C3]中填入3的可能性,也哃时排除 了同一行中[C8]和[C9]填入3的可能性这使得在起始于[A7]的区块中,能填入3的位置只剩下[B8]和[B9]见下图 利用区块排除法区块排除法,在起始于[A7]嘚区块中无论3在[B8]还是[B9],行B中的其他位置都不能再填入3所以[B1],[B2]和[B3]都被排除于 是,在起始于[A1]的区块中能填入3的位置仅剩下[A1]和[A2]了。但至此我们还无法确定3的准确位置这时我们还要借助于其他的辅助区 块来进一步排除。 观察起始于[D1]的区块利用[D7]位置上的3排除同一行的[D1],以忣用[G3]位置上的3排除同一列的[E3]和[F3]使区块中可能填入3的位 置只余[E2]和[F2],刚好这两个位置都在第2列中符合上面介绍的第2种情况,于是可以把[A2]也排除掉最后,我们就可以很肯定地在 数独快速解法游戏技巧(Sudoku) Page 8 of 39 [A1]中填入数字3了 这个例子同时使用了多个辅助区块同时参与排除。在实際使用中虽然这种情况并不常见但却也不少见。关键在于如何能正确识别并恰当应 用区块排除法区块排除法相信通过大量的练习并勤於分析思考,这种方法就可以运用自如得心应手。 下面是其他的一些例子可以帮助更好地理解并掌握这种技法 唯一余数法 Sole Number Technique 唯一余数法 Sole Number Technique 唯一余数法唯一余数法是直观法中较不常用的方法。虽然它很容易被理解所以说明这个方法不需要很大篇辐,然而在实践中却不易看絀能够使用这 个方法的条件是否得以满足,从而使这个方法的应用受到限制 数独快速解法游戏技巧(Sudoku) Page 9 of 39 与单元唯一法相比,唯一余数法唯一余数法是确定某个单元格能填什么数的方法而单元唯一法是确定某个数能填在哪个单元格的方法。另外应用单 元唯一法的条件十汾简单,几乎一目了然 与候选数法相比,唯一余数法唯一余数法相当于显式唯一法虽然显式唯一法是候选数法中最简单且应用最容易嘚方法,但在直观法中却正好相反 先看一个例子 对于单元格[G9]应该填入什么数字,就算你把前面介绍的所有直观技法都用上也不得而知。然而我们通过观察它所在的行,列和区块 可以发现除了数字2以外,1到9中其他的数字都出现了其中行G中包含了7,69,53和8,第9列中包含了数字58,7和1起始于[G7] 的单元格中包含了3,84,75和1。这样如果[G9]不填入数字2,就一定会违反游戏“行列或区块不能出现重复数字”的规则。所以 [G9]中的数字一定是2 总结一下就是如果某一单元格所在的行,列及区块中共出现了8个不同的数字那么该单元格可以确定地填入还未出现过的数字。 怎么样很简单吧,但在实践中却不那么容易识别看下面的谜题 你能看出来对哪个单元格应用唯一余数法唯一餘数法吗 还有这个谜题 数独快速解法游戏技巧(Sudoku) Page 10 of 39 答案分别是[E6]9和[I7]9。 一般来说只有在使用基本的排除方法都失效的情况下,才试着使用这個方法来解题 组合排除法 Combination Elimination Technique 组合排除法 Combination Elimination Technique 组合排除法组合排除法和区块排除法一样,都是直观法中进阶的技法但它的应用范围要更小一点。一般情况下基本没有机会用到这种方法解题,所 以要找到相应的例子也都很困难当然,如果你希望优先以这个技法来解题的话还昰能碰到很多能符合使用组合排除法条件的情况。 组合排除法组合排除法顾名思义,要考虑到某种组合这里的组合既包括区块与区块嘚组合,也包括单元格与单元格的组合利用组合的关联与排斥 的关系而进行某种排除。它也是一种模糊排除法同样是在不确定数字的具体位置的情况下进行排除的。下面先看一个例子 对于上面这个谜题你能确定数字6在起始于[G4]的区块中的位置吗 要想获得正确的答案初看起来有些困难。因为虽然在[G9]和[H3]已经存在了两个6但是利用它们只能行排除区块中的[G4]和[H6]两个单元 格,还是无法确定6到底是在[I4]还是在[I5]中这时候,组合排除法组合排除法就派上用场了 现在撇开起始于[G4]的区块,先看它上面的两个区块即起始于[A4]和[D4]的区块。这几个区块的共同特点昰占有同样的几列也就是第4 列至第6列,因此它们之间的数字会相互直接影响 数独快速解法游戏技巧(Sudoku) Page 11 of 39 对于起始于[A4]的区块,利用[A1]处已囿的数字6进行行排除可以得到这个区块中可能填入6的位置只剩下两个[B5]和[C6]。 对于起始 于[D4]的区块利用[E7]处已有的数字6进行行排除,可以得到這个区块中可能填入6的位置也剩下两个[F5]和[F6] 这时,我们仍无法确定6在这两个区块中的确切位置但不妨对可能出现的情况作一下分析 假设茬起始于[A4]的区块中,[B5]6则同一区块中的[C6]必不为6,而且[B5]还将列排除[F5]这样在起始于[D4]的区块中,只有[F6] 6 假设在起始于[A4]的区块中,[C6]6则同一区块Φ的[B5]必不为6,而且[C6]还将列排除[F6]这样在起始于[D4]的区块中,只有[F5] 6 简单地说,只有两种可能[B5]6且[F6]6或者[C6]6且[F5]6。决不会再出现其他的情况但无论昰其中哪一种情况,第5列和第6列都 会有确定的6出现在这两个区块中也就是说,第5列和第6列的其他位置不可能再出现数字6这样,原本无法肯定的6在起始于[G4]区块中 的位置一下子就变得明确了。 利用起始于[A4]和[D4]的区块对起始于[G4]的区块进行列排除可以把[I5]排除掉,这样就只剩丅[I4]可以填入6了。 小结一下组合排除法的要满足的条件如下 如果在横向并行的两个区块中,某个数字可能填入的位置正好都分别占据相同嘚两行则这两行可以被用来对横向并行的另一区块做行排 除。 如果在纵向并行的两个区块中某个数字可能填入的位置正好都分别占据楿同的两列,则这两列可以被用来对纵向并行的另一区块做列排 除 让我们再看一个例子 数独快速解法游戏技巧(Sudoku) Page 12 of 39 要想确定数字1在起始於[D4]的单元格中的位置,我们将设法借助于其横向上相邻两个区块的帮助 利用[I2]的列排除,我们可以把起始于[D1]的区块中的[E2]和[F2]排除掉这样,這个区块中能填入1的位置剩下[D1][D3]和[E1]。 利用 [H7]的列排除可以把起始于[D7]的区块中的[E7]和[F7]排除掉,再利用[A9]的列排除可以把这个区块中[E9]和[F9]排除掉,這样这个 区块中能填入1的位置只剩下[D8]和[E8]。 虽然在起始于[D1]的区块中能填入1的位置多达3个,但是它们正好只分布在行D和行E上而且在起始於[D7]的区块中能填入1的位置所占 据的也是这两行。最终1的位置只可能有三种情况[D1]1且[E8]1;或者[D3]1且[E8]1;或者[E1]1且[D8]1无论是哪种情况,行D和 行E都会有确定嘚1出现在这两个区块中也就是说,这两行的其他位置不会再出现1于是, 数独快速解法游戏技巧(Sudoku) Page 13 of 39 借助于这两个区块的行排除我们鈳以把起始于[D4]的区块中的[D4]和[D6]排除掉,再利用[G4]位置的列排除最终确定1的位置在[F6]。 下面是其他一些使用组合排除法组合排除法的例子 在实践Φ组合排除法组合排除法的实际应用机会不如区块排除法多。但是掌握这一技法无疑可以大大提高求解谜题的灵活性,从而增加解题嘚乐趣 矩形排除法 Rectangle Elimination Technique 矩形排除法 Rectangle Elimination Technique 矩形排除法矩形排除法虽然浅显易懂但一般在实际解题的时候应用得却比较少。这是因为即使谜题中存在滿足使用这一方法的情况也很难直接看出 来。然而相对组合排除法而言,在解题过程中倒是能有更多的机会用上矩形排除法矩形排除法下面先看一个例子 数独快速解法游戏技巧(Sudoku) Page 14 of 39 对于这个谜题,如果不用矩形排除法矩形排除法是无法继续下去的我们将通过讲解这種技法,从而找到数字8在起始于[G1]的区块中的位置乍看之 下,好象一筹莫展因为[B2]和[E3]上的8只能列排除左下角这个区块中的[G2], [H2][G3]和[I3]这4个单元格,这时仍剩下两个单元格 [G1]和[H1]无法确定 让我们先来留意一下第6列,这一列中暂时没有8那么8可能会填入哪几个单元格中呢首先,[B2]中的8行排除了[B6]而[E3]和[F4]中的 8又分别行排除了[E6]和[F6]。这样能填入8的位置就只剩下[C6]和[I6]了。见下图 同样对于第9列,由于[F4]的行排除[F9]不可能填8,所以这一列能填入8的位置也就只剩下[C9]和[I9]了 凑巧的是,这两列中能填入8的位置都在同样的两行上即行C和行I。这时就为我们应用矩形排除法创造了湔提条件 如果第6列中[C6]8,那么[I6]和[C9]一定不能是8而第9列这时就只剩下[I9]能填入8了; 又或者如果第6列中[I6]8,那么[C6]和[I9]一定不能是8而第9列就只剩下[C9]能填入8了。 不可能再有第3种情况所以,要么[C6]8且[I9]8要么[I6]8且[C9]8。但无论是哪种情况不难发现,行C和行I都已填入了8所以这 两行的其他位置不可能再填入8。我们正好可以利用这一点来进行排除 数独快速解法游戏技巧(Sudoku) Page 15 of 39 观察起始于[G1]的区块,我们已经知道现在只剩下[G1]和[I1]两个单元格無法确定了通过上面的分析,利用矩形排除法矩形排除法排除位于行I上的 [I1]就可以确定数字8一定在[G1]上。 总结一下使用矩形排除法矩形排除法的条件如下 如果一个数字在某两行中能填入的位置正好在同样的两列中,则这两列的其他的单元格中将不可能再出现这个数字; 如果一个数字在某两列中能填入的位置正好在同样的两行中则这两行的其他的单元格中将不可能再出现这个数字。 让我们再来看一个例子 莋到这一步时不用矩形排除法的话恐怕是走投无路了。这次还是要在起始于[G1]的区块中找到数字4的位置但我们无法确定4究竟在[G2] 还是[G3]呢 先偠找找看有没有满足矩形排除法条件的情况存在。观察行B在这一行中,由于[C5]的区块排除[B4]和[B5]都不能为4,再加上[H8]列排 除了[B8]这样行B中能填叺4的位置包括[B1]和[B3]。 再看行F由于[D6]的列排除,使得[F6]不能填4所以行F中能填入4的位置只有[F1]和[F3]。 数独快速解法游戏技巧(Sudoku) Page 16 of 39 幸运的是行B和行F中能填入4的位置正好都位于同样的两列上,即第1列和第3列根据上面矩形排除法的规则,第1列和第3列中不在行B和 行F上的单元格中不能填入4所以[G3]不能为4。这样起始于[G1]的区块中就只有[G2]能填入4了。 下面是应用矩形排除法的其他一些例子希望可以帮助大家快速掌握这种方法 数独赽速解法游戏技巧(Sudoku) Page 17 of 39 矩形排除法矩形排除法可以说是直观法中最困难的技法,因为当前的谜题即使满足应用这一方法的条件也实在太難发现了。一般情况下尽量先使用 其他相对简单的直观法。如果最后连矩形排除法矩形排除法都用上还是无法解题你可能就需要尝试候选数法候选数法了。 候选数法候选数法 显式唯一法 Naked Single 显式唯一法 Naked Single 这是候选数删减法中最简单的一种方法就是扫描候选数栅格表,如果哪個单元格中只剩下一个候选数就可应用显式唯一法显式唯一法,在该单元格 中填入这个数字并在相应行,列和区块的候选数中删除该數字 在下面的图中 单元格[I1]有唯一的候选数1,则毫无疑问地把数字1填入该单元格中并扫描其所在行,列和区块的候选数中有无数字1 数独赽速解法游戏技巧(Sudoku) Page 18 of 39 如果有则把1从这些单元格的候选数中删除 显式唯一法显式唯一法虽然简单,但却是最有效的候选数删减法之一;尤其在谜题相对简单时有时单单使用显式唯一法显式唯一法就可以解题。 隐式唯一法 Hidden Single 隐式唯一法 Hidden Single 见文知义隐式唯一法隐式唯一法也是唯一候选数法的一种,但它肯定不如显式唯一法那样显而易见我们知道,如果某一个单元格中只有一个候选数 字这时可以毫不犹豫地填入它;但是有没有这种情况,即使某个单元格中有不止一个候选数字我们也可以轻易地推断出这个单元格的正 确解答呢 考虑下面的情況 数独快速解法游戏技巧(Sudoku) Page 19 of 39 在第7列中,单元格[B7]中虽然有多个候选数但观察整列后我们发现,只有这个单元格中有数字6根据数独快速解法游戏的规则,每一列中都必须 要有从1到9的所有数字而同时6却只能出现在这个单元格中,所以很显然[B7]6当然,别忘了把6从[B7]所在的行列和区块中删除。 同样在下图中 观察行B后我们发现,只有单元格[B8]中含有数字7同理,[B8]是该行中唯一可以填入数字7的单元格所以[B8]7。另外我们还要扫描 相应行,列和区块删除其中的候选数7。 当然这种隐藏的唯一候选数也可能躲在区块中,看下图 对于起始于[A1]的区块而言数字8只出现在单元格[A2]的候选数中,所以[A2]8从相应行,列和区块删除其中的候选数8。 隐式唯一法隐式唯一法是显式唯一法的有力补充佷多稍复杂的题都可以在这两种方法的交替使用下得以解决。 区块删减法 Intersection Removal 区块删减法 Intersection Removal 应用显式唯一法和隐式唯一法只能解决简单的谜题遇到稍复杂的谜题,还是要靠其他的方法区块删减法区块删减法也是比较常用的方法,它的目的 是尽量删减候选数而不一定要生成某┅单元格的唯一解(当然,产生唯一解更好)区块删减法区块删减法是利用区块中的候选数和行或列上的候选 数之间的交互影响而实现嘚一种删减方法,它分为两种情况 区块对行或列的影响区块对行或列的影响 观察下图 数独快速解法游戏技巧(Sudoku) Page 20 of 39 可以看到在起始于[A7]的区块Φ数字9只出现在[A9]和[C9]的候选数中,更巧的是[A9]和[C9]正好都在同一列上,即第9列这时就可以 应用区块删减法了。具体地说在起始于[A7]的区块Φ,数字9只能填在[A9]或是[C9]中又因为这两个单元格都在第9列上,所以无论数字 9填在哪个单元格中第9列的其他单元格中都不能再填数字9,所鉯要把9从它们的候选数中删除在上图中,位于第9列的单元格[E9]中的 候选数9将被删除 下图说明的是区块对行的影响 在起始于[G1]的区块中,只囿[H2]和[H3]可以填入数字3而这两个单元格正好都在行H中。同样的道理在这个区块中无论数字3填入[H2] 还是[H3],行H中的其他单元格中都不可能再填入3所以在单元格[H4],[H6]和[H7]的候选数中的3将被删除 行或列对区块的影响行或列对区块的影响 与“区块对行或列的影响”相近但却不同,“行或列对区块的影响”着重于先对行或列进行分析 观察下图 数独快速解法游戏技巧(Sudoku) Page 21 of 39 在第5列中,8只出现在[D5]和[F5]的候选数中;也就是说第5列Φ的数字8只能填入这两个单元格其中的一个。碰巧的是这两个单元格正 好都位于起始于[D4]的区块中,结果使得这一区块中的数字8也不能填叺区块的其他单元格中所以[D4],[E4][E6]和[F6]的候选数中的8 将被删除。 同样下图说明了行对区块的影响 在行E中,只有[E5]和[E6]能填入数字6而这两个单え格又刚好都在起始于[D4]的区块中,所以该区块中的其他单元格内不能再填入数字 6即6将从单元格[D5]和[F5]的候选数中删除。 总结一下区块删减法嘚条件就是 在某一区块中,当所有可能出现某个数字的单元格都位于同一行时就可以把这个数字从该行的其他单元格的候选数中删除。 在某一区块中当所有可能出现某个数字的单元格都位于同一列时,就可以把这个数字从该列的其他单元格的候选数中删除 在某一行(列)中,当所有可能出现某个数字的单元格都位于同一区块中时就可以把这个数字从该区块的其他单元格的候选数中删除。 虽然区块刪减法区块删减法应用比较广泛但是还是要先给大家泼盆冷水。因为在很多时候即使满足了区块删减的条件,也可能会发生没有候选數可 以删减的情况让人空欢喜一场。其实这个问题对其他稍复杂的方法都是普遍存在的。 显式数对法 Naked Pair 显式数对法 Naked Pair 显式数对法显式数对法在很多谜题中都可以得到应用它的条件比较容易满足,而且显而易见 先看下图 数独快速解法游戏技巧(Sudoku) Page 22 of 39 在行E中,[E2]和[E8]中候选数只有兩个且都是2和3,即构成一个{2, 3}的数对这使得该行中其他单元格中不能再出现2或3。为什么 呢因为假设[E2]2,则[E8]一定要填3;反之假设[E2]3,则[E8]则┅定填2不会再出现其他的情况。所以2和3必然不能成为该行中其 他单元格的候选数这样,[E3][E4]和[E5]的候选数中都不能再有2和3。 对于列也是这樣 在第3列中数对{6, 8}只出现且都出现在[A3]和[H3]中,所以其他单元格里都不能再有这两个数字这样,[C3]的候选数中将删除6和8 而[F3]的候选数中将删除8。 同样别忘了还有区块 数独快速解法游戏技巧(Sudoku) Page 23 of 39 观察起始于[G4]的区块,可以发现[G5]和[I4]中含有数对{2, 4}这样,该区块中其他的单元格里都不能洅有数字2和4这次受影响的有4 个单元格,分别是[G4][H4],[I5]和[I6] 总结一下显式数对显式数对的条件,也就是在一个行,列或区块中如果有两個单元格都包含且只包含相同的两个候选数,则这两个候选数字不能 再出现在该行列或区块的其他单元格的候选数中。 显式三数集法 Naked Triplet 显式三数集法 Naked Triplet 显式三数集法显式三数集法并不如显式数对法那样常见但它们的原理却很相似。显式数对法要求同样的2个数字都出现在某行列或区块的2个单元格 中,且这2个单元格的候选数不能包含其他的数字同样,显式三数集法显式三数集法要求的是3个数字要出现在3个位於同一行列或区块的单元格中, 且这3个单元格的候选数中不能包含其他数字但不同的是,显式三数集法显式三数集法不要求每个单元格中都要包含这3个数字例如,对于数字集 {2,4,5}如果在某行,列或区块中有3个单元格的候选数分别为下面几种情况时都可应用显式三数集法显式三数集法,即3个单元格的候选数集可以分 别为 {2, 4, 5} {2, 4, 5} {2, 4, 5}或 {2, 4} {4, 5} {2, 5},或 {2, 4, 5} {2, 5} {4, 5}或 {2, 4, 5} {4, 5} {2, 4, 5},或 也就是说要形成显式三数集显式三数集,则必须要有3个在同一行列或区块中的单元格,每个单元格中至少要有2个候选数且它们的所有候选数字 也正好都是一个三数集的子集。由于这个三数集中的3个數字正好可以分别填入这3个单元格中所以该行,列或区块中其他的单元格中不可 能再填入这3个数字 但要注意的是,下面的这种情况不昰显式三数集显式三数集 {2, 4, 5} {2, 4} {2, 4} 其中{2, 4}和{2, 4}可应用显式数对法所以第一个候选数集{2, 4, 5}将只能剩下候选数5,这时就可应用显式唯一法了 看下图 在行DΦ,[D1][D7]和[D8]中分别包含候选数集{3, 5, 9},{3, 5, 9}和{5, 9}根据上面的知识,可以判断出这是一个显式三数集显式三数集因 此数字3,5和9不可能再出现在行内其怹的单元格中所以[D4]和[D6]的候选数中的3,5和9将被删除 下面是列中的显式三数集显式三数集的例子 数独快速解法游戏技巧(Sudoku) Page 24 of 39 在第2列中,[G2][H2]囷[I2]中分别包含候选数集{2, 6},{2, 5}和{2, 5, 6}所以数字2,5和6只能在这三个单元格中分别填入而不 可能填入到该列的其他单元格中,因此[A2][B2]和[E2]的候选数中嘚2,5和6将被删除 细心的朋友可能还发现,[G2][H2]和[I2]不仅都在第2列中,而且又恰好都在起始于[G1]的区块中对于数字5,已经符合区块删减法的条 件可惜的是,第2列中其他单元格的候选数中都没有5可以删减 同样,显式三数集显式三数集还有在区块中的可能 在起始于[D7]的区块中[D8],[D9]和[E9]中分别包含了候选数集{4, 9}{4, 8, 9}和{8, 9},这样区块中其他的单元格中不能再填入数 字48和9,可以删减的单元格是[E7]和[E8] 显式四数集法 Naked Quad 显式四数集法 Naked Quad 顯式四数集法显式四数集法比较少见,如果你已经对显式三数集法比较了解则对显式四数集法显式四数集法也会很快掌握。 先举个例子对于数字集{1, 2, 4, 5},如果在某行列或区块中有4个单元格的候选数分别为下面几种情况时,都可应用显式四数集法显式四数集法 即4个单元格嘚候选数集可以分别为 {1, 2, 4, 5} {1, 2, 4, 5} {1, 2, 4, 5} {1, 2, 4, 这样的组合情况可以很多。也就是说要形成显式四数集显式四数集,则必须要有4个在同一行列或区块中的单元格,每个单元格中至少要有2个候选 数且它们的所有候选数字也正好都是一个四数集的子集。由于这个四数集中的4个数字正好可以分别填叺这4个单元格中所以该行,列或 区块中其他的单元格中不可能再填入这4个数字 但要注意的是,下面的这种情况不是显式四数集显式四數集 {1, 2, 4, 5} 6}{2, 5, 6}和{3, 5, 6},即分别都是四数集 {2, 3, 5, 6}的子集这样在行D中,数字23,5和6就只能填入这4个单元格中所以[D3]和[D7]的候选数中将不能包含这几个数字。 下媔是显式四数集显式四数集在列中的例子 在第9列中[C9],[D9][E9]和[G9]中分别包含了候选数集{1, 7, 8},{1, 8}{6, 7, 8}和{6, 7, 8},即分别都是四数集{1, 6, 7, 8} 的子集这样数字1,67和8就鈈能填入该列中除这四个单元格之外的单元格中,所以[A9]和[B9]的候选数中将不能出现这四个数字 同样,显式四数集显式四数集也可以出现在區块中 数独快速解法游戏技巧(Sudoku) Page 26 of 39 在起始于[A7]的区块中[B9],[C7][C8]和[C9]中分别包含了候选数集{6, 7},{1, 6, 8}{7, 8}和{1, 6, 7, 8},即它们分别都是四 数集{1, 6, 7, 8}的子集这样,数字16,7和8就不能填入该区块中除这四个单元格之外的单元格中所以[A7]和[A8]的候选数中将不能 出现这四个数字。 当然掌握了显式四数集法显式㈣数集法,我们同样可以演绎出显式五数集法显式五数集法显式六数集法显式六数集法等,但因为显式四数集法显式四数集法出现的几率已经较小所以我们不 指望推演出的更多方法能在解决数独快速解法谜题上带给我们有效的帮助。 隐式数对法 Hidden Pair 隐式数对法 Hidden Pair 对比显式数对法隐式数对法隐式数对法也需要在同一行,列或区块中寻找两个单元格而这两个单元格上都包含有一个数对(两个数字),且这个数 對不会出现在该行列或区块的其他单元格上。然而应用隐式数对法隐式数对法却要困难得多,因为它与显式数对法不同的是包含有數对的单元格 的候选数中可能还包含有其他的数字。 先看下图 可以看到在行A中,数对{3, 6}只出现在[A4]和[A8]的候选数中也就是说,数字3和6不可能洅出现在该行的其他单元格中这是因为这 两个单元格中必然只能填入3和6,否则该行将缺少这两个数字这样,如果[A4]3则[A8]6;反之,如果[A4]6則[A8]3,不会再有其 他的情况所以我们可以放心地把其他的数字从这两个单元格的候选数中删除。 下面是隐式数对隐式数对在列中的例子 在苐1列中数对{2, 9}只出现在[G1]和[I1]的候选数中,这样就符合了上面所述的隐式数对的条件所以可以很安全地把其他数字从这两 个单元格的候选数Φ删除,使这两个单元格中只保留了显式数对{2, 9} 在区块中也是如此 数独快速解法游戏技巧(Sudoku) Page 27 of 39 在起始于[D4]的区块中,数对{2, 8}只出现在[E6]和[F6]的候选數中所以这两个单元格上其他的候选数将被删除,而只保留了数对{2, 8} 总结一下,隐式数对隐式数对的条件是在同一行,列或区块中洳果一个数对(两个数字)正好只出现且都出现在两个单元格中,则这两个单元格 的候选数中的其他数字可以被删除 隐式数对隐式数对鈈象显式数对法那么容易发现,所以在解题时需要相对的耐心和细心与显式数对法不同的是,隐式数对法隐式数对法只影响出现隐式数對的 单元格而不影响其所在行,列或区块的其他单元格这是因为这些其他的单元格中都不包含有这个数对。但通过隐式数对法隐式数對法删减了候选数 后隐式数对隐式数对将转化为显式数对,可能会为其他的行列或区块应用各种候选数删减法创造条件。 隐式三数集法 Hidden Triplet 隐式三数集法 Hidden Triplet 与隐式数对法类似这次需要3个数字和3个单元格。即当某个3个数字只出现在某行列或区块的3个单元格中,且每个单元格Φ至少包含有 其中的2个数字时则可以把其他数字从这3个单元格的候选数中删除。与显式三数集法类似举例来说,对于三数集{2, 4, 5}如果某 茬行H中,三数集{5, 8, 9}中的任何数字都只出现在[H1][H3]和[H5]的候选数中,其中[H1]包含了数字5和9;[H3]包含了数字8和9;而 [H5]中包含了数字5和8这说明数字5,8和9只能填入这三个单元格中所以其他候选数不能出现在这三个单元格中。因此数字1和3将从 [H1]的候选数中删除而数字3和4将从[H3]的候选数中删除。 下媔是隐式三数集隐式三数集在列中的例子 数独快速解法游戏技巧(Sudoku) Page 28 of 39 在第7列中三数集{3, 7, 9}中的任何数字都只出现在[F7],[G7]和[H7]的候选数中其中[F7]包含了数字3和7;[G7]包含了数字3和9,而 [H7]包含了数字37和9。这样就符合了隐式三数集法隐式三数集法的基本条件,不在这个三数集内的数字将从這三个单元格的候选数中删除 隐式三数集隐式三数集还有可能发生在区块内 在起始于[G7]的区块中,三数集{3,6,7}中的任何数字都只出现在[G8][G9]和[H8]的候选数中,其中[G8]包含了数字36和7;[G9]包含了 数字3和7,而[H8]包含了数字3和6这样,就符合了隐式三数集法隐式三数集法的基本条件不在这个三數集内的数字将从这三个单元格的候选数中删 除。 隐式三数集法隐式三数集法属于难度比较高的方法在处理一般谜题时较少碰到。隐式彡数集法隐式三数集法只影响包含隐式三数集隐式三数集的三个单元格与隐式数对法相 似,删减的结果是把隐式三数集隐式三数集转换為显式三数集并可能为使用其他的候选数删减法创造条件 隐式四数集法 Hidden Quad 隐式四数集法 Hidden Quad 这是一个极少用到的方法,因为它的条件比较难以滿足与隐式三数集法类似,这次需要4个数字和4个单元格即当某个4个数字只出现在 某行,列或区块的4个单元格中且每个单元格中至少包含有其中的2个数字时,则可以把其他数字从这4个单元格的候选数中删除与显式 四数集法类似,举例来说对于四数集{1, 2, 4, 5},如果某行列戓区块中的四个单元格的候选数集依次为以下情况时,都符合隐式四数 集 24和8;[A7]包含了数字4和9,而[A8]包含了数字28和9。这样就符合了隐式㈣数集法隐式四数集法的基本条件,不在这个四数集内的数字将从这四 个单元格的候选数中删除 当然,我们也可以看到即使不用隐式㈣数集法隐式四数集法,由于[A3]和[A5]形成了明显的显式数对同样也可用显式数对法对该行其他单元格候选数 的删减。这里我们为了讲解隐式四数集法隐式四数集法,所以优先使用该方法这也说明能应用这种方法的机会很少,因为经过很多较简单方法对候选 数进行多番删减鉯后已经较难满足隐式四数集隐式四数集的基本条件。 同样下面的谜题,我们本来可以用显式数对法来解决但这里暂时优先使用隐式四数集法隐式四数集法 在第6列中,四数集{1, 4, 8, 9}中的任何数字都只出现在[A6][D6],[E6]和[I6]的候选数中其中[A6]包含了数字1和4;[D6]包含了数 字1,8和9;[E6]包含了數字4和9而[I6]包含了数字8和9。这样就符合了隐式四数集法隐式四数集法的基本条件,不在这个四数集内的数字将从这四 个单元格的候选数Φ删除 当然,在区块中也可应用隐式四数集法隐式四数集法因为鲜少有这样的例子,且与上面介绍的行与列中的

开通VIP/超级影视VIP 看大片

客户端特权: 3倍流畅播放 免费蓝光 极速下载

| 增值电信业务经营许可证:

拍照搜题秒出答案,一键查看所有搜题记录

拍照搜题秒出答案,一键查看所有搜题记录

我要回帖

更多关于 数独快速解法 的文章

 

随机推荐