解题算法
掌握这些基本解题技巧,征服任何数独谜题。每种算法都基于逻辑推理来填充只有一个可能解的单元格。
最后一个数字
1 4
最后一个数字 - 1 4
最后一个数字(又称最后剩余候选数)会在某一行、列或宫格中已经包含八个不同数字时出现;缺失的数字必须填入该宫格唯一的空格,因为数独规则要求每个数字1-9在每个宫格中恰好出现一次。
最后一个数字 - 2 4
在第二行,只剩下一个空格[2,2](蓝色高亮)。
最后一个数字 - 3 4
该行中已经存在数字1、3、4、5、6、7、8和9(蓝色高亮)。
最后一个数字 - 4 4
因此,唯一缺失的数字是'2',它必须填入[2,2](蓝色高亮)。
裸单
1 3
裸单 - 1 3
裸单是指某个单元格在所有候选数被排除后只剩下一个候选数。
要求:必须扫描整个宫格的候选数。
裸单 - 2 3
扫描该宫格的所有候选数后,'7'是某个单元格唯一的候选数(蓝色高亮)。
裸单 - 3 3
因此,'7'必须填入该单元格(现在已填充并高亮为蓝色)。
裸单 - 4 3
因此,'7'必须填入该行的第一个单元格(现在已填充并高亮为蓝色)。
隐单
1 3
隐单 - 1 3
隐单是指在某一宫格(行、列或宫)中,某个候选数只出现一次。即使该单元格还有其他候选数,这个唯一出现的候选数也必须填入该单元格。
隐单 - 2 3
扫描该宫格的所有候选数后,候选数'9'只出现在一个单元格中(蓝色高亮)。
隐单 - 3 3
因此,'9'必须填入该单元格——现在已填充并高亮为蓝色。
指向对
1 4
指向对 - 1 4
指向对用于识别在一个宫格内仅限于某一行或列的候选数。因为这些候选数不能出现在该宫格的其他地方,所以可以从该行/列在宫格外的单元格中删除这些候选数。
指向对 - 2 4
扫描该宫格的所有候选数后,'3'只出现在同一行的两个高亮单元格(蓝色)中。
指向对 - 3 4
即使这些单元格还有其他候选数,由于'3'(该宫格的)只能出现在这两个单元格中,我们可以从同一行(宫格外)的所有其他单元格中删除候选数'3'。
指向对 - 4 4
该技巧也适用于3个候选数的情况。
裸对
1 3
裸对 - 1 3
该策略识别在一个宫格(行、列或宫)中恰好有两个单元格包含完全相同的两个候选数。发现后,这两个数可以从所有共享宫格的其他单元格中删除,因为它们必须占据这两个单元格。
裸对 - 2 3
扫描此最后一个宫中的所有候选数后,两个单元格仅包含相同的两个候选数 '1' 和 '2'(以蓝色突出显示)。
裸对 - 3 3
由于这些单元格只能包含 '1' 或 '2',因此可以从所有其他共享宫格的单元格中删除这些候选数。
X-Wing
1 4
X-Wing - 1 4
X-Wing 是一种高级技巧,使用两行和两列。如果某个候选数在两行(或两列)中的每行恰好出现两次,且这些单元格在相同的两列(或两行)对齐,则可以从这些列(或行)的所有其他单元格中消除该候选数,因为它必须占据 X-Wing 模式中的四个单元格之一。
X-Wing - 2 4
扫描所有候选数后,标出两个行(红色),其中某候选数被限制在完全相同的两列(蓝色)。
X-Wing - 3 4
X-Wing 模式形成于这些行与列的交点处(以蓝色高亮)。
X-Wing - 4 4
因此,从标出的列和行的所有其他单元格中消除该候选数。
剑鱼
1 4
剑鱼 - 1 4
Swordfish 是将 X-Wing 扩展到三行三列的高级技巧。如果某候选在三行(或三列)中的每一行恰好出现三次,并且这些单元格在相同的三列(或三行)对齐,则可以从这些行和列的所有其他单元格中消除该候选,因为它必须占据 Swordfish 模式中的九个单元格之一。
剑鱼 - 2 4
扫描所有候选数后,标出三个行(红色),其中某候选数被限制在完全相同的三列(蓝色)。
剑鱼 - 3 4
Swordfish 模式形成于这些行与列的交点处(以蓝色高亮)。
剑鱼 - 4 4
因此,从标出的行和列的所有其他单元格中消除该候选数。
XY-Wing
1 5
XY-Wing - 1 5
XY-Wing 是由三个单元格组成的模式,每个单元格恰好有两个候选数:XY(枢纽)、XZ 和 YZ(翼)。如果枢纽能看到两个翼,任何能同时看到两个翼的单元格都不能包含共享的候选数 Z。
XY-Wing - 2 5
扫描所有候选数后,识别出具有候选数 XY、XZ 和 YZ 的三个单元格(以蓝色和红色标出)。
XY-Wing - 3 5
枢纽单元(红色)与两个翼(蓝色)共享同一屋(行/列/宫),每对单元共享一个候选数。在这个例子中,枢纽与一个翼共享'4',与另一个共享'1';两个翼都共享'3'。
XY-Wing - 4 5
任何能同时看到两个翼(绿色高亮)的单元格都不能包含共享候选数 '3'。
XY-Wing - 5 5
因此,从所有能同时看到两个翼的单元格中移除候选数 '3'。