当前位置: 华文星空 > 知识

该数独,还有什么办法不需要假设的?

2021-06-13知识

首先先澄清一点,并不是所有的数独都能找到有逻辑的解法,有一些到最后只能一个一个数字去试。当然随着数独的更进一步的研究说不定可以研究出更加高明的解法把每个数独都解开,然而在今天我们还没有找到全部的这些解法。

不过,一般像题主这种在数独游戏软件中找到的题目都是设计成可以使用有逻辑的解法解出来的。

这里推荐一个网站:SudokuWiki,作者研究数独多年,总结了很多数独的算法,并且也制作了一个在线数独分析器,直观的展示可以哪一种算法,来删除哪一个待定数字。本答案中所有的截图都来自于这个分析器。

目前题主的情况是这样的:

首先,我们找到了一个用X-Wing可以删除的数字:

仔细观察黄色高亮的这4个格子,其中每一格里都出现了数字5。

那么如果5出现在其中的一个位置,比如左上角C1,那么5就不会出现在和它同一行或同一列的右上角C5和左下角J1。那么5就只能出现在右下角J5(因为第5列中5只能出现在C5和J5中)。反之同理,如果5出现在右上角C5,那么肯定有另外一个5出现在左下角J1。换句话来说这个数字5会 在对角线的两格成对出现

那么,和这几个黄色格子同行同列的其他格子中绝对不会出现5,这些5都是可以删除的,比如绿色高亮格子里的那个5。

由于这个黄色格子构成了两个对角线,也就是一个X形,所以这个算法称之为X-Wing。

SudokuWiki中也提供了X-Wing算法的详细解释,可以参见:

用X-Wing算法删除了一个5之后,我们并没有得到什么特别有用的线索,所以我们继续观察这个数独:

我们找到了另外一个可以用WXYZ Wing算法可以删除的数字:

仔细观察这4个高亮的格子,这4个格子中每个都只有两个数字,其中黄色高亮的两个格子包含数字6,而除去这两个数字6以外的另外两个数字9和3,在同一列中唯一一个可能出现的其他位置用棕色标注(第二列的9和第三列的3),这两个棕色标注的格子又出现在了同一行,并且其中的另外一个数字1只可能在同一行的这两个棕色格子中出现。

这四个数字6,3,1,9就构成了一个路径,如果路径中任意一个数字确定了,那么其他所有数字都会确定。

我们分情况看一下:

  • 如果黄色格子E2是6,那么棕色格子D2必然为9,那么D3必然为1,那么黄色格子J3必然为3。
  • 如果黄色格子E2不是6,那么E2就是9,那么棕色格子D2必然为1,那么D3必然为3,那么黄色格子J3必然为6。
  • 也就是说6 必然出现在这两个黄色格子的其中一个上

    那么观察G2这个格子,这个格子中有备选数字6。然而这个格子与黄色格子E2在同一列,与黄色格子J3在同一个九宫格。如果黄色格子E2和J3中必然有一个6的话,6就必然不会出现在G2里,G2中的备选数字6可以删除。

    这种算法被称之为WXYZ Wing,其中WXYZ代表这个路径中有4个不同的数字参与,比如这道题中的6,3,1,9。如果我们用中文翻译的话,可以管这种算法叫「四数路径」。

    想要对这个算法有更加深入的了解,可以参见SudokuWiki中WXYZ Wing的页面:

    删除了G2中的待定数字6,我们就可以解出G2是5:

    之后问题也就迎刃而解了。

    最终答案是这样的: