Sudoku Explained

高级 约 7 分钟

三个数字只有三个家

这三格合起来可能有六七个候选。没关系——三个数字已经没有别的去处,这三格就被占了。

一句话版本

隐性三数组,是三个数字被锁在同一个单元里的同样三格上。这三个数字各自的每一个家都在那三格之内,所以这三格必须装下它们,于是这三格里写着别的什么,都是多余的。

格子本身可能看起来很挤——三格加起来六七个候选。那不是重点。受限制的是数字能去哪,不是格子能装什么。

形状

取一个单元。取三个数字。对这三个数字,各自标出它在这个单元里还能放的所有格子。

如果三个数字的标记全都落在同样三格里,你就有隐性三数组。这三格归这三个数字所有,格子里其他候选全部可以擦掉。

条件很严:三个数字、每一个、每一个家,都在这三格内。 任何一个数字多出第四个家,整个结构就散了。

为什么成立

一个单元里每个数字恰好出现一次。三个数字需要三格。如果三个数字的所有家都在恰好三格之内,那这三格就是这三个数字唯一能落的地方——所以它们必须各装一个。

每格一个值,三格三个数字,三格被这三个数字占满。再没有位置留给第四个值。这三格里其他候选因此都是不可能的。

注意结论的方向。你不是学到「某格是 7」,你学到的是「某格不可能是 9」。填数随后才来,而且常常立刻就来——当三格之一只剩一个候选时。

真实盘面

在第 4 行里,数字 3、6、8 各自都只能落在 R4C4、R4C7、R4C8 这三格。三格装三个数,这三格的其它候选都是多余的。

第 4 行,三个数字,三格:

所以这三格归 3、6、8 所有。R4C7 的 9 被删掉——它本来是个候选,现在不是了。

这个例子值得停一下,因为它同时也是显性三数组:三格的候选合起来恰好是「3、6、8」。两种描述是同一个结构从两头读。当三格没有三个数字以外的候选时,这种情况必然出现,也是这两个技巧老被搞混的原因。

怎么扫

隐性三数组是按数字扫的——和隐性数对同一套动作,只是更宽一层。

  1. 取一个单元。 行最好读,然后列,然后宫。
  2. 对每个数字列出它的家。 不是候选,是家。这个数字在这个单元里还能放哪?
  3. 按「家的集合」分组。 家数恰好两个或三个的数字,是数对或三数组的候选。
  4. 验格子集合的并。 如果三个数字各自的全部家都落在这同样三格里,成了。格子只要差一个,就没成。
  5. 擦掉多余的。 三格里所有不属于这三个数字的候选,全部删。

难的是第 4 步,因为你在比格子集合,不是比数量。两个数字被限制在「甲、乙、丙」、一个被限制在「甲、乙」,是合法三数组。两个在「甲、乙、丙」、一个在「甲、乙、丁」,不是。

隐性三数组 vs 显性三数组

和数对一模一样的对偶,只是高一层:

证据排除在哪
显性三数组三格只有三个数字这三个数字从单元其余格子删
隐性三数组三个数字只有三个家这三格里的其他候选删

显性三数组要求格子很穷:每格候选少。隐性三数组要求数字很穷:每个数字家少。两个条件彼此独立,也可能同时成立——就像上面那张盘面。

如果隐性三数组的三格恰好只装着这三个数字,显性三数组也会同时触发,两边的排除重叠。那不是重复,是同一个事实被说了两遍。

显性三数组,往外那个版本。

陷阱

数候选而不是数家。 最常见的错误。一格写着「2、3、6、8、9」,看起来不可能属于三数组,因为五个候选太挤。但问题是 3、6、8 在这三格以外还有没有家——这一格自己的候选表无关。

一个数字有四个家。 两个数字完美围困,第三个到处乱走。没有三数组。这个容易漏,因为你往往先找到那两个好的就停手了。

把数对当三数组。 两个数字锁在两格是隐性数对,它只删这两格里的其他候选。为了「保险」再拉第三个数字进来,整个结构就失效了。

以为排除就等于填数。 隐性三数组很少当场填出数字。它是布局动作,收益要等一两步之后,以裸单的形式兑现。

用在哪

隐性三数组比隐性数对罕见得多,也难找得多,属于「难题把所有便宜技巧都顶回来了」才会出现的层次。

它真正的价值在诊断。如果你写好了完整候选表,把隐性数对扫了一遍、空手、盘面还是不动,那么把同一个扫描放宽到三格,成本很低,而且偶尔能当场撬开题目。它是你开始数鱼之前,最后一层便宜的升级。

常见疑问

什么是隐性三数组?

同一单元里三个数字都只能落在同样三格上。这三格必须装下这三个数字,所以这三格里的其他候选全部删掉。

它和显性三数组有什么区别?

显性三数组把三个数字从单元里其他格子删掉;隐性三数组把这三格里的其他候选删掉。证据和排除,方向相反。

这三格必须只有三个候选吗?

不必。那样它就同时也是显性三数组了。隐性三数组里,三格各自可以有很多候选——受限制的是三个数字能去哪,不是格子能装什么。

怎么避免把噪音当成隐性三数组?

数「家」,不是数候选。对三个数字逐个确认它的所有可能位置都落在这同样三格里。其中任何一个数字有第四个家,就没有三数组。