首页 > 百科知识 正文

零基础入手攻克专家级数独难题实战案例,数独高级难点图解

时间:2024-03-24 12:00:01 阅读:360 作者:看夕阳落下

【前言】作为零基础入手攻克专家级数独难题的实战案例,本文首先介绍数独填数所需要用到的专有名词,以使初学者在阅读本文实战案例时不致产生误解,这些名词解释,部分借鉴了正规书籍,其中有部分也添加了本人自己的解释;而本文所介绍的实战案例,则是属于本人原创,其中较少运用各种复杂的删数技巧,取而代之以通过逻辑清晰的求解链试数方法。本文目的就是让每一个数独爱好者包括初学者都能快速学会专家级数独难题的思路。适度关注出数技巧、更加注重试数逻辑是本人实战操作的一大特点。本人根据该数独方法在三天内解答出了芬兰数学家Arto Inkala花费三个月做出的号称史上最难的数独表。希望对数独有兴趣的各位老师朋友能够留言交流讨论,对于指望培养孩子逻辑思维能力的家长,本人介绍的数独方法特别有利于孩子循序渐进,在最短的时间内学会解答骨灰级乃至专家级数独难题。

1、数独名词

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第1张

数独:填数结构盘面共有9 X 9 = 81个单元格,在每一单元格内填入1到9当中一个数字,使得最终每行、列、宫内都不含有重复数字的一种填数游戏;

行:数独盘面每一横排,本文用字母A、B、C、D、E、F、G、H、I标记各行;

列:数独盘面每一竖排,本文用数字1、2、3、4、5、6、7、8、9标记各列;

单元格:指数独盘面每一个小格子,用小格子所在行和列的标签组合表示,如第C行和第3列交叉处的单元格格用C3标记;

宫:数独盘面分为左上区(A1:C3)、中上区(A4:C6)、右上区(A7:C9)、左中区(D1:F3)、中中区(D4:F6)、中右区(D7:F9)、左下区(G1:I3)、中下区(G4:I6)、右下区(G7:I9)这九个小区块,各单元格由其所在位置分属不同的宫,例如B2和所有(A1:C3)区域的单元格都属于左上区的宫;

初盘:数独最开始的题目盘面;

提示数:数独初盘下给定的用来进行推理的原始数字,也叫已知数;

候选数:每一个单元格的所有填数可能,也叫暗头。标记方法:A3单元格含有1、2和5三个候选数则标记为A3(1、2、5);

候选数盘:数独给出了全盘候选数状况下的盘面,也叫铅笔盘;

单值格:指每个已经有明数的单元格,明数既可以是提示数,也可以是经过技巧得到的填数;

双值格:数独盘内有两个候选数的单元格;

多值格:数独盘内有多个候选数的单元格;

终盘:是指每个单元格都填数完成并满足数独规则的答案盘;

出数:由技巧所得的填数结论;

删数:由技巧所得删除数字结论;

步:做题的每一个出数和删数的结论;

摒除:利用数字在同一行、列和宫内不得重复的情况,进而进行排除的一种逻辑;

试数:当数独盘面不能直接删数和出数时,通过在特定单元格内试填该单元格的候选数,如果最终得到矛盾就排除当前填数,否则就进行下一轮出数、删数或试数的方法;

求解链:求解过程中利用强关系和弱关系来证明数字结论的过程,特别是应用于双分支或者多分支试数的情况,以使逻辑清晰,思路明确;

链头:推理过程开头的节点;

链尾:推理过程链的末端;

双分支试数法:以数独候选数盘某个双值格作为节点,开始向下填数并试数,直至得出矛盾或者答案的方法;

多分支试数法:数独的候选数盘没有双值格时选择以某个多值格作为根节点,开始向下填数并试数,直至得出矛盾或者答案的方法;

2、行、列、宫删数判别式

2-1、整行(或列、宫)中目标单元格总数 < 目标单元格候选数总数,则该行(或列、宫)可以重新选择目标单元格范围;

2-2、整行(或列、宫)中目标单元格总数 = 目标单元格候选数总数,则目标单元格的候选数可以用来对该行(或列、宫)其他单元格进行删数操作;

例:下图中同属于左上宫(A1:C3)的A2和B2单元格数两个,它们的共有候选数是2、6,共有候选数等于单元格数,因而可以用来对同宫的A3(2、3、6)、B3(2、4、5)执行删数操作;

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第2张

2-3、整行(或列、宫)中目标单元格总数 > 目标单元格候选数总数,则该数独表必定出现重值,则该推理链可以摒除,相对应的节点出现错值(False)。

例:下图同宫的5个单元格A2、A3、B1、B3、C1共有候选数只有4个:2、3、6、7,因而该数独表最终必定会出现重值。

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第3张

这跟多元一次方程组判别变量有多个解、唯一解和无解的规则有异曲同工之妙。

3、数独求解过程

数独求解过程,就是不断利用技巧删数、填数以及试数得到正确答案的过程。

3-1、删数

3-1-1、对于新出现的单值格,按照和提示数同样的办法进行该单元格所在的行、列、宫进行删数操作;

例:单元格I3=5可以对同为第I行的单元格I9(2、5)删数,同时可以同为第3列的B3(5、8)删数,还可以对同宫的G1(1、2、5、7、9)及G3(1、5、8、9)删数。

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第4张

3-1-2、如果整行(或列、宫)出现几个单元格的个数等于其共同候选数个数的情况,则这几个单元格所在行(或列、宫)中其它单元格可以从各自候选数中删除上述共同候选数;

例:下图中目标单元格B5和B7个数为2,共同有2个候选数4、8,因而可以对同为B行的B9(2、4、8)执行删数;而G3(8、9)和H3(8、9)既是同列数又是同宫数,它们单元格个数和候选数个数都是2,因而可以对同宫数G1(2、5、9)、G2(2、4、7、8)、H1(2、9)、H2(2、4、7、8)删数,还能对同列的A3(3、6、8)及F3(3、6、9)删数。

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第5张

3-2、填数

3-2-1、通过删数完成后在某个单元格自动出现单值格;

3-2-2、唯一候选数法:即当整行(或列、宫)中某个候选数只出现在某个单元格中,虽然这个单元格可能还存在其候它选数,也直接填数这个数;

例:下图中A4(2、9)候选数在整个A行是唯一的,因而A4可以直接填数2,否则缺失数字将有违数独规则。

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第6张

3-3、试数

当数独表不能通过删数或者填数进行下一步操作,或者删数以及填数的技巧太强不易掌握时,就可考虑通过试数来进行求解。试数并非盲目试数,要想做到事半功倍,需要遵循下述原则:

3-3-1、要选择候选数少的单元格作为试数起始点,例如双值格和多值格同时存在的情况下,要优先考虑双值格,以尽可能减少分支链的并列分支数量以减少复杂程度,同时也可以尽快得到新的单值格以进行删数操作。

例:下图双值格B(2、9)仅有两个候选数2、9,而D4(4、5、9)有三个候选数4、5、9,选择D4节点就意味着求解链的链头只有两个分支,这可以大大简化求解链分支复杂程度。

3-3-2、存在多个双值格时,要通过观察或者简单演算,优先选择试数时能够出现较多新的单值格作为求解链的新的起始节点;

例:比较下图中A4(2、9)、H3(8、9),如果以A4(2、9)作为节点,当A4=2,删数不能直接产生新的单值格,从而不能为下一步删数做准备,而当A4=9时,删数同样不能直接产生新的单值格;而如果以I3(1、5)为起始节点,当I3=1时,则I7=7,I5=2、I9=5,先后直接出现至少4个单值格,从而为下一步删数做好准备;而当I3=5时,则I9=2、I5=7、I5=1、B3=8共5个单值格,单值格越多,那么下一步删数就越顺利。

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第7张

这一步非常重要,在非常复杂的数独表中可以大大提高工作效率,而很多人可能没有注意到这一点!

4、本数独表难度

本数独表包含24个提示数,HoDoKu v2.2难度评分8994,Sudoku Explainer v1.2.9难度评分8.5分,属于专家级难度级别。作为对照,芬兰数学家Arto Inkala花费三个月做出的号称史上最难的数独表,HoDoKu v2.2难度评分21342,Sudoku Explainer v1.2.9难度评分10.7分,作者通过本文介绍的数独实战方法只用三天时间同样求出了正确答案。

5、本数独表实战过程

5-1、原数独表

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第8张

5-2、将数独表转化成候选数盘

将原数独表中的提示数按各自所在的单元格所在的行、列、宫进行删数操作,得到如下候选数盘。

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第9张

5-3、选择双值格I3(1、5)作为求解链的链头

选择I3作为试数起始单元格的原因,可以参考本文2-3-1和2-3-2的试数原则。

5-4、首先令I3=5进行试数

5-4-1、数独表先后进行B3=8、B9=4、B7=7、B1=5、B5=2、A4=9、H3=9、H5=6、H9=8、H8=7、H1=2、H2=4、G3=1、G1=7等单元格所在行、列、宫删数操作;

5-4-2、G行G8(5、6)和G9(5、6)候选参数都是5和6,和其同行的G7(4、6)可删除候选参数6直接得到G7=4;

5-4-3、A行A3和A9候选数都为3和6,可以分别以3和6对该行的A2和A8进行删数操作,A行A3和A9候选数都为3和6,可以分别以3和6对该行的A2和A8进行删数操作,A2=1而A8候选参数变为2和8,记作A8(2、8);

5-4-4、数独表先后进行A2=1、A5=8、C1=6、C6=1、A3=3、A9=6、E2=3、G9=5、E9=9、E1=1、E5=5等各单元格所在行、列、宫删数操作;

5-4-5、F行F3=F4=6出现相同数值与数独规则相矛盾,导致该推理链以I3=5的节点的结果出现假值(False),单元格I3=5的节点需要删除。

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第10张

5-5、令I3=1试数:

5-5-1、数独表先后进行I3=1、I5=2、I9=5删数操作,得到以下图表,注意完成删数操作后新的明数I3、I7、I5和I9都突出标记显示出来;

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第11张

5-6、令B3=8试数:

B3=8作为I3=1节点向下的新的节点;

5-6-1、数独表先后由单元格B3=8、B7=4、B9=2、B5=5、B1=7、H3=9、G3=5进行删数操作;

5-6-2、数独表第1列单元格G1=H1=2出现数值重复,与数独规则不符,故在I3=1节点下B3=8的分支节点需要舍去;

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第12张

5-7、B3=8途径被摒弃,转而令B3=5试数:

5-7-1、数独表先后进行B3=5、B1=7删数操作,结果见下图;

5-7-2、B行数独格B5(4、8)和B7(4、8)同有待选参数4和8两个数字,同行B9(2、4、8)可以消除4和8变成B9=2;

G3(8、9)和H3(8、9)位置既在第三列,又在左下小九宫中,因而可以同时对第三列和左下小九宫其他数独格消除参数8和9;

5-7-3、再先后以B9=2、H1=2进行删数操作,结果见下图;

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第13张

5-7-4、根据唯一候选数填数法原则填数:

第2列只有F2含有参数2,故直接填数F2=2;

第A行只有A4含有参数2,故直接填数A4=2;

右上宫(A7:C9)中只有C8含有参数7,故直接填数C8=7;

中右宫(D7:F9)中只有E8含有参数5,故直接填数E8=5;

右下宫(G7:I9)中只有G8含有候选数2,故直接填数G8=2;

5-7-5、再以A4=2、G8=2在各自所在的单元格所在的行、列、宫进行删数,结果见下图。

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第14张

5-8、令G6=9试数:

在I3=1、B3=5后,选择双值格G6(3、9)作为新的节点;

5-8-1、数独表先后进行G6=9、G3=8、D6=3、D8=6、H8=8、A8=3、A3=6、C1=1、A2=8、A9=9、C3=3、C8=8、F6=1、B5=4、B7=8删数操作;

5-8-2、数独第7列单元格E7=F7=9数值重复与数独规则相矛盾,因而在I3=1和B3=5推理链下,G6=9节点需要删除。

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第15张

5-9、令G6=3试数:

双值格G6(3、9)作为新的节点,当以G6=9试数时最终出现错误结果(False),再转而令G6=3;

5-9-1、数独表先后进行G6=3、D6=9删数操作;

5-9-2、右下宫(G7:I9)中G7含有唯一的候选参数1,故G7直接填数1;

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第16张

5-10、令F3=3试数:

选择双值格F3(3、6)设置新的节点,令F3=3试数并进行删数操作。

5-10-1、数独表先后进行F3=3、E2=1、A3=6删数操作;

5-10-2、A行中A2和A8候选参数都有仅只有3和8,因而A5和A9的候选参数能删除这两个候选参数,删数完成后A9=9,而A5则进一步删除后,直接填数A5=1;

5-10-3、数独表先后进行A9=9、A5=1、C6=8、B5=4、B7=8、A8=3、D8=6删数操作;

5-10-4、数独第7列E7=F7=9数值重复,与数独规则相矛盾,因而该节点需要舍去;

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第17张

5-11、令F3=6试数:

选择双值格F3(3、6)设置新的节点,令F3=6进行删数操作;

5-11-1、数独表先后进行F3=6、A3=3、F4=5删数操作;

5-11-2、数独F行F1(1、9)、F6(1、8)、F7(8、9)三个单元格有且只有三个候选参数1、8、9,因而同行F5可以删除候选参数1、8而直接填数3;

5-11-3、数得表进行F5=3删数操作;

5-11-4、数独D行D4(4、6)和D5(4、6)两个单元格有且只有两个候选参数4、6,因而同行的D8可以消除候选数6而直接填数D8=3;

5-11-5、第1列E1和F1两个单元格有且只有两个候选参数1、9,因而同列的C1可以消除参数1而直接填数字6,即C1=6;

5-11-6、第七列B7(4、8)、C7(4、8、9)、F7(8、9)三个单元格有且只且三个候选参数4、8、9,因而同列的E7可以消除参数8和9直接填数6,即E7=9;

5-11-7、第二列A2和C2两个单元格有且只有两个候选参数1和8,因而E2可以消除参数1直接填数3,即E2=3;

5-11-8、C行C2和C8两个单元格有且只有两个候选参数1、8,因而C5、C7和C9都可以约除参数1、8,随后C4和C7两个单元格共有参数4和9,进一步删数操作后C5=5,C9=3;

5-11-9、E4进行删数操作,最终结果见下图。

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第18张

5-12、双值格C3(1、8)设为新的节点,现以C3=1试数:

5-12-1、数独表进行C3=1、A2=8、A8=6、A9=9、A5=1、C6=8、C7=4、B7=8、F7=9删数操作,结果如下图

5-12-2、数独F行F1=F6=1数值重复,与数独同行、列、宫不能出现相同数字的规则相矛盾,因而该节点C3=1分支予以删除。

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第19张

5-13、双值格C3(1、8)再以C3=8试数:

5-13-1、数独表进行C3=8、A2=1、C6=1、F6=8、F7=9、E9=8删数操作;

5-13-2、由于双数格G9和H9同列又同宫且有且只有两个候选参数4和6,因而可以同时约去H8和A9的相同候选参数,而H8直接填数8,A9直接填数9

5-13-3、数独表进行A9=9、A5=8、B5=4、D5=6、E5=1、H8=8、H3=9、H5=7、H2=4、H9=6、G5=9删数操作;

5-13-4、数独最终解出来并核对无误,结果见下图:

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第20张

5-14、整个数独求解链试数如下:

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第21张

结论:

对于较简单的以及复杂程度中等的数独,掌握一些复杂的删数技巧可以大幅度提高求解速度,但这些技巧,对于难度非常大且必须经过多层试数的“骨灰级数独”以及“专家级数独”,往往显得无处着手。因而对于求解高级数独,试数比删数和填数更加重要,而要想有效试数,清晰的逻辑比复杂的技巧更为重要。

以下两个数独,作者用上述数独求解方法都给出了正确答案,其中号称史上最难的数独,笔者求解共用了三天。欢迎广大数独爱好者给出答案并交流心得体会!

数独一:

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第22张

数独二:

零基础入手攻克专家级数独难题实战案例,数独高级难点图解-第23张

版权声明:该问答观点仅代表作者本人。如有侵犯您版权权利请告知 cpumjj@hotmail.com,我们将尽快删除相关内容。