龙空技术网

中小学数学竞赛爱好者和大学生适合练习的高难六宫数独(第02题)

JohnT28 5336

前言:

当前兄弟们对“数独题目生成算法软件”大致比较讲究,大家都需要剖析一些“数独题目生成算法软件”的相关资讯。那么小编也在网上汇集了一些关于“数独题目生成算法软件””的相关文章,希望同学们能喜欢,咱们快快来学习一下吧!

#科技改变教育#

如图M2,这是一个六宫数独游戏,它包含六行六列,分别用字母和数字表示行数和列数。它还有六个宫,上层左右各六个宫格组成第一宫、第二宫,中间左右各六个宫格组成第三宫、第四宫,下层左右各六个宫格组成第五宫、第六宫。

所谓数独,就是在空格中填入1~6的整数,填满后与题目给出的数字构成一个完整的六宫数表,其中每行、每列和每宫的数字都不能重复,保持唯一性。

一般的六宫数独游戏适合小学生初中生或初学数独者练习,熟悉后再向九宫数独过渡。但也有颇具难度的六宫数独,例如本题,需要用到更高级的技巧如候选数法和反证法才能解出。这样的高难六宫数独,更适合中小学数学竞赛爱好者和喜欢逻辑推理的大学生,熟练掌握后也可以用类似的方法去解答九宫数独游戏。

为保持推理的乐趣,我们一开始在解图M2的题目时,还是先用常规的解法,实在不行时才采用候选数法。因为候选数是充分发掘潜在信息的好工具,有了它,很多用常规方法还挺吃力的推理过程就变得轻松了不少。闲话少叙,马上做题吧。

如图01,它来自图M2。F3所在的第五宫、F行、3列已有数字12356,因此F3必为4,这用到唯一数法,就得图02。

在图02中,E3所在的第五宫、E行、3列已有12346,又由唯一数法,就有E3=5,见图03。

关于图03,仍用唯一数法。F4所在的第六宫、F行、4列已有12345,显然F4为6,如图04。

图04中,我们要寻找第二宫中谁是6。A3为6排除了A5、A6为6的可能性,F4是6也使B4不可能为6,可见第二宫中只能是B6=6,这就是行列排除法,故有图05。

看图05,B5为2使B行中其他格不能为2,F2为2也排除了2列中别的格为2的可能,又由行列排除法,第一宫中只有A1是2,就得图06。

考察图06,F4是6使F1不能是6,第五宫中只可能是E1为6,这是行排除法,如图07。

在图07中,还用行列排除法,C5、E1、A3都是6,使第三宫中C1、C2、D1、D3不能为6,只有D2=6,即为图08。

看看图08,B3所在的第一宫、B行、3列已有12456五个数字,由唯一数法,就有B3为3,如图09。

从图09中,我们发现第五宫和3列各有一个空格,由数字的唯一性便得D3是2,F1是1,见图10。

而图10的F5是F行的唯一空格,它只能是3,就是图11了。

对于图11,D4是1,4列中B4就不能是1,第二宫中的1必在A5或A6中,所以第一行的A2不是1,又F1为1使1列中的B1不可为1,只能B2=1。这是较复杂的行列排除法,后面的候选数法倒是能轻松解决这个问题,还是从图11就切换到候选数吧,也可顺便进行求B2的对比分析。

图11里,每行、每列、每宫中题目给出的和上面推算出的数字是已知的,由它们就得到每个空格还可能填入的几个候选数,用小数字表示,如图12。候选数法,往往是常规解法无法进行下去时破局的利器。

这些候选数,不可能的数字要逐步清除,最终每格只有一个数字是对的。视题目的复杂程度,有时找了很久也不知如何下手,但一旦抓住了关键点,问题就能大大简化了。

看看图12,B1与B4的候选数都是4和5,这称为数对(行、列或宫中三个格恰好包含三个数的情形叫数组),它是一种稳定的结构,即4和5肯定在B1与B4中,相关行列宫的其他格不可能是这两个候选数。这样,B2就只能是1,这比起前面的方法要简单得多,因为候选数让隐含的信息显露出来了。去除相关行列宫的其他1,可得图13。

来到图13,就比较棘手,要用到高难技巧了。解法和表达方式众多,基本的思路类似数学中的反证法。这里,我们介绍一种类似编程算法的逻辑推理表达式:

文字解释是这样的:

+5 [B1]-5 [C1/D1]

假设B1是5,则1列的C1及D1都不能是5;

+5 [C2]-5 [C4]

所以第三宫的C2是5,则C行的C4不是5;

+5 [D5]-5 [A5]

可见第四宫的D5是5,则5列的A5不可为5;

+5 [B4]-5 [B1]

因此第二宫的B4是5,这就与B1是5的假设矛盾,从而B1肯定不是5。

但B1的候选数是4和5,由以上的推理,知B1只能为4,清除相关行、列、宫的重复候选数,就是图14。这一步最重要,后面就是“轻舟已过万重山”了。

图14中,C1与D1是含有候选数3和5的数对,因而C2不能是5,只能为4。又A2和B4都有唯一候选数,故A2为5,B4也为5,这是唯一候选数的特性。把相关行列宫中重复的候选数清理后,便有图15。

在图15中,由唯一候选数得到C4为2。而E4虽然有两个候选数,但4列中只有E4可能为4,因此E4为4,这就是隐形唯一候选数,清除多余的相关候选数,如图16。

对于图16,由唯一候选数或隐形唯一候选数就有C6为3,E5为1,C1为5,D5为5,E6为2,清除相关行列宫中多余的候选数,见图17。

最后,在图17中,从唯一候选数或隐形唯一候选数可知A5是4,A6是1,D1是3,D6是4,得到本题的答案,如图18。

有些数独软件或网页在玩家提供准确解答后会显示一段动画,遍历数独表中所有数字,看是否每行、每列、每宫的数字保持不重复。我们也可进行这样的查验,确保万无一失。

这种高难的候选数六宫数独游戏,更适合中小学数学竞赛爱好者和爱好益智游戏的大学生练习,熟悉后也可把类似的解法移植到难度更高的的九宫数独之中。

标签: #数独题目生成算法软件