标准数独技巧教程
标准数独技巧教程
  • 数独概述
    • 初来乍到
    • 坐标
    • 数独历史
  • 直观技巧
    • 排除
    • 唯一余数
    • 剩余数的概念
  • 局部标记技巧
    • 割补(LoL)
    • 直观区块
    • 直观数组
      • 直观隐性数组
      • 直观显性数组
    • 直观复杂出数
  • 基础候选数技巧
    • 候选数的概念
    • 直观和局标技巧在全标下的样子
    • 标准鱼
      • 鱼的基本推理
      • 鳍鱼
      • 退化鱼
      • 孪生鱼
      • 鱼的直观和互补性
      • 鱼的命名
    • XY-Wing 及推广
      • XY-Wing 及推广的基本推理
      • XY-Wing 及推广的残缺逻辑
    • W-Wing
    • 唯一矩形(UR)
      • 唯一矩形的基本推理
      • 唯一矩形的类型
      • 残缺唯一矩形
    • 可规避矩形(AR)
    • 唯一环(UL)
      • 唯一环的基本推理
      • 唯一环的形成条件
      • 唯一环的规格推广
    • 拓展矩形(XR)
      • 拓展矩形的基本推理
      • 拓展矩形的规格推广
    • 全双值格致死解法(BUG)
      • 全双值格致死解法的基本推理
      • 全双值格致死解法的其他类型
    • 欠一数组(ALC)
    • 融合待定数组(SdC)
    • 跨区数组(DDS)
    • 伪数组(ESP)
    • 均衡数组
    • 烟花数组
      • 烟花数组的基本推理
      • 烟花数组的各种用法
  • 链理论
    • 双强链
    • 同数链和异数链
      • 同数链和异数链的定义
      • 头尾异数链的删数规则
      • 不连续环的两种模式
      • 有技巧名的异数链
    • 区块链
    • 待定数组链(ALS 链)
      • 链关系的第二定义
      • 有技巧名的待定数组结构
      • 在链里的待定数组
    • 隐性待定数组链(AHS 链)
    • 毛刺数组链
    • 待定唯一矩形链(AUR 链)
    • 待定可规避矩形链(AAR 链)
    • 环
      • 环的基本推理
      • 数组、鱼和欠一数对的环视角
      • 区块环
    • 强制链
      • 强制链的基本推理
      • 有技巧名的强制链
    • 动态链
      • 动态链的基本推理
      • 动态强制链
      • 动态环的删数
  • 附录
    • 术语索引
  • 逻辑学基础
    • 逻辑学简要介绍
    • 分情况讨论和析取消去
    • 反证法
  • 组合数学基础
    • 抽屉原理/鸽巢原理
  • 其他
    • 作者介绍
    • 版权声明
由 GitBook 提供支持
在本页
  • 唯一余数
  • 排除
  • 区块
  • 显性数组
  • 隐性数组
  • 数组显隐性互补的性质
  • 互补性质解释
  • 为什么数组规格不超过 4?
  • 高规格数组内可能会有低规格数组
  1. 基础候选数技巧

直观和局标技巧在全标下的样子

Looking of Direct & Partial-Marking Techniques in Full-Marking Grids

最后更新于1个月前

为了更好地衔接后续的技巧,我还是想贯彻之前教程的样子,单开一个篇目给各位介绍一下前面全部数独技巧,在全标状态下的样子。

当你在看到这些长相后,你以后就不愁看不懂后续下结论的时候为啥图长那样了;另外,我发这些图也是为了体现一下配色方案的约定俗成。后面所有的技巧,配色方案都会采用这样的方式来给各位展示,就不再变动了。

唯一余数

先说唯一余数。

可以看到,唯一余数的结论是 r9c1 = 1。不过如果你忽略掉圆圈的话,其实可以看到的是,这个位置其实就一个候选数。这便是全标状态下最简单的情况。候选数的由来不就是数数么。既然只有一个候选数,那么自然它就是唯一余数了。

之所以全标模式下,把唯一余数放排除之前,有个重要的原因就是,因为它更适合在全标模式下使用。我们大家都知道唯一余数在直观层面都难找得很。但是在全标状态下,它都很容易被发现。所以,当你在做全标题目的时候,就适当调整一下技巧的优先级次序。

排除

如图所示,排除的话会稍微麻烦点。

在全标视角下,虽然你仍然可以使用 r2c3 和 r6c2 的数字 6 来作排除,但是我不是来说这个的。在全标下,b7 里填入 6 的位置只有 r8c1。你可以仔细看看 b7 里所有空格的候选数排列情况。显然,只有 r8c1 有 6 这个候选数,而别的三个格子都没有。所以,不是你填还能是谁填?

区块

如图所示,直观视角我们可以使用数字 4 来作排除。不过在全标下,我们需要看的是候选数的分布。在 b1 里,数字 4 只出现在 r12c2 里,这样就有了区块的概念了。

然后根据区块,我们可以得到 r69c2 <> 4 的结论。

这个是宫区块,因为区块下在 b1 里。下面给各位看一则行列区块的例子。这个例子给各位自己看了吧。

显性数组

下面我们来看显性数组。

如图所示,这个题的结论是 r46c3 <> 69。当然很明显 r4c3 也没有 9,只是这里我们用这个结论把它表达写简单一些。

下面我们来看一下显性三数组和显性四数组。

然后我们来看显性四数组。

隐性数组

如图所示,这是个隐性数对。从全标下来说,b6 填入 5 和 8 的位置只有 r56c7 两个单元格。所以,r56c7 不能填入其他任何的数字。

可以看到,它除了这些结论外,还有别的结论。这是因为,在去除掉 r56c7 的其他数后,它就只剩 5 和 8 了,会变成一个显性数对。然后,我们又可以得到同列的别处不能填 5 或 8 的结论。

这里是我把这两个逻辑整合在一起了,因为只要出现这种样子的数对,就必然会从隐性数对变为显性数对,然后删掉同列别处的位置(当然,也不一定非得同列,可以同行或同宫)。

下面我们来看隐性三数组和隐性四数组。先是隐性三数组。

再来看看隐性四数组。

数组显隐性互补的性质

互补性质解释

可能你会好奇,为什么之前我在介绍数组的时候,规格只到 4。是不存在 4 以上的情况吗?还是说它过于罕见导致没有题或者不想讲(反正也遇不到)的原因吗?

实际上不是的。在最开始我们就提过一点,数组其实只有一种,只是因为视角不同被分成了两种形态。分成两种形态的原因自然是观察难度的不同,以及逻辑推理的不同。但是从本质上来说,其实它们是一样的东西。

下面我们来看一则例子,以说明这两个最终是等价的。

请看这个题目。这个题目存在一个隐性数对结构(左图),删除的数字是图中红色的 6 个数字;而这图同样的宫内存在一个显性四数组(右图),删除的也是这 6 个数字。

这冥冥之中告诉我们它很有可能不是巧合,就是故意这么安排的。那么,这是题目的设计如此么?我们再来看一个例子。

如图所示。这是另外一个题目。这个题目左图有一个显性数对,它的结论是这三个删数;右图是在同样的行上存在一个隐性三数组,它的结论仍然是这三个删数。

可能你会有所疑惑。两个数组涉及的数字都不一样,凭什么删数恰好都能完全一样呢?这真的不是巧合吗?

不是的。它不是巧合。它就是数组的一个特征,显隐性互补(Law of Complement):

如果你发现了一个显性数组,那么这个所在的区域下,同时也存在与之互补的隐性数组,使其删数完全一致。另外,显性数组的规格和隐性数组的规格,应等于整个这个区域下的空格数量。反之亦然。

怎么理解呢?比如说例子 1,b4 里一共有 6 个空格。其中隐性数对是 2 个单元格,显性四数组是 4 个单元格,刚好满足 2 + 4 = 6 的情况;而例子 2 里,r3 里一共有 5 个空格。其中显性数对是 2 个单元格,隐性三数组是 3 个单元格,也恰好满足 2 + 3 = 5 的情况。

这个互补特征客观成立的点,在于显隐性数组两方,使用的单元格刚好不同。所谓“刚好不同”,是说显性用的格子,隐性一个都不会用。反之亦然。而整好,显性数组用的格子和隐性用的格子全部列到一起,就是整个这个区域下的所有空格。这是互补的本质原因。

那么,这种互补为什么就奏效了呢?请仔细思考一下。显性数组的删数和隐性数组的删数特征都是什么?显性数组一定删的是数组用到的这些数字,而隐性则刚好相反。举个例子。如果一个显性数对用的数字是 5 和 8,那么它的删数也必须得是 5 和 8。而如果一个隐性数对是 5 和 8 的话,那么它的删数只可能是 5 和 8 外的其他所有数字(1、2、3、4、6、7、9 这些)。从数字上讲,它们删数的“取值范围”是互补的——能够凑成一组完整的 1 - 9。

只要我们保证单元格使用完全用满全部的空格,那么所有的数字由于自身就是互补的删数状态,那么我们就可以使得视角从显性转为隐性,或者隐性转为显性,而删数可以保持纹丝不动。

为什么数组规格不超过 4?

下面我们来解释另外一个问题。为什么我们学到的数组,规格只有 2、3、4 三种情况呢?这里我们要稍微用一下数学不等式的思维,不难的,请放心。

首先,我们知道,显性数组和隐性数组的规格总和等于这个区域下所有的空格数,那么我们使用字母 ccc 来表示指定元素的数量的话,那么我们不难得到这个式子:

c显性数组+c隐性数组=c空格c_\text{显性数组}+c_\text{隐性数组}=c_\text{空格}c显性数组​+c隐性数组​=c空格​

我们将它们移向等号的同一侧,然后使用 c非空格=9−c空格c_\text{非空格}=9-c_\text{空格}c非空格​=9−c空格​ 的说法将其代换一下,于是我们就有了:

c显性数组+c隐性数组=c空格c显性数组+c隐性数组=9−c非空格c显性数组+c隐性数组+c非空格=9\begin{align*} c_\text{显性数组} + c_\text{隐性数组} &= c_\text{空格}\\ c_\text{显性数组} + c_\text{隐性数组} &= 9 - c_\text{非空格}\\ c_\text{显性数组} + c_\text{隐性数组} + c_\text{非空格} &= 9 \end{align*}c显性数组​+c隐性数组​c显性数组​+c隐性数组​c显性数组​+c隐性数组​+c非空格​​=c空格​=9−c非空格​=9​

我们使其这么进行一轮式子变形,就有最下面的这个结果。

我们将这里的数字 9 当成一个定值,而不是一个具体的数。既然是定值,那么我们就知道,左边三个数的和一定是个固定结果。

由于求和等于定值,这意味着左边三个元素,一旦有其中一个数变大,那么剩下两个数的和,结果一定就会变小,才能保证结果是一个定值。

我们不妨为了让 c显性数组c_\text{显性数组}c显性数组​ 和 c隐性数组c_\text{隐性数组}c隐性数组​ 两个数都尽量大,那么我们只好让 c非空格=0c_\text{非空格} = 0c非空格​=0 了。那么这个式子在极端情况下会变为这样:

c显性数组+c隐性数组=9c_\text{显性数组}+c_\text{隐性数组}=9c显性数组​+c隐性数组​=9

现在我们知道,显性数组和隐性数组的关系一定是一个变大另外一个就会变小的。那么,其中一旦有一个数超过了 5,另外一个数就会变到 4。变为 4 意味着这个数:

  1. 保持求和为 9;

  2. 比互补的那个数组的规格要更小。

尤其是第二点。比如说显性数组规格开始等于 5 了,那么隐性数组就必须等于 4 以保证求和结果为 9(如果还有非空格的话,那么这个数还会更小)。但是,就这么光看极端情况的话,4 就已经比 5 还小了。这就说明了一点:我们无法让数组规格超过 5——因为互补的那一边一定会有一个规格更小的在等着呢。

这就是为什么数组没有规格超过 5 的情况:虽然理论成立,但实际上根本派不上用场。

高规格数组内可能会有低规格数组

有些时候,互补过去可能看起来并不是那么正常。下面我们来看一则例子。

如图所示,左边是一个隐性数对。按道理来说,取出其他空格就可以直接转为显性四数组(因为空格就 6 个,2 + 4 = 6)。

但是仔细看一下,其实不难发现到的是,右图的数组 4、6、7、8 其实是不太合理的。因为它其实可以只用三个单元格:r8c236 就行。这三个单元格的数字 6、7、8 已经足够构成显性数组。把 r8c7 招揽进来看起来并不是那么合理。

这个问题我们要先从互补性出发来解释它。首先,互补的时候,我们需要取出 r8 里所有没用到的空格一并形成数组结构,这使得冗余的部分 r8c7 会被纳入进来。其次,从规则上讲,显性数组本身就是看单元格内部是否在排列上形成占满的思维。三个的很好理解,四个的其实也不是不能理解。强行理解的话,你可以认为里面仅出现了 4、6、7、8 四种不同的数字,刚好在四个单元格里。为了尽量保证数组内部填充不会出现矛盾状态(数字重复什么的),我们会优先先去给可填位置更少的数字优先安排空格填进去。显然,数字 4 只有一处位置可填,所以我们“暂时”让 4 填在 r8c6。然后,其他的 6、7、8 分别安排在旁边的三个单元格 r8c236 里,似乎也不是不能形成四数组的形式:确实 4、6、7、8 把四个格子的填数机会给占满了。既然席位全部使用完了,那么我们自然就不难想到,同一行的其他单元格就没有机会填入 4、6、7、8,自然就可以使其产生合适的删数。只不过,这里的 4 安放尤为特殊:它仅有一处可填。仅有一处可填意味着 4 最终的摆放只可能在这个单元格上。

这是最难理解的点,也是破解这种奇怪的数组的关键点。数组的本质是,里面只能填入这些数字。“只能”意味着数字不论如何,在这个区域的别处,都不会填入,而填写的最终位置,尽可能在数组内部的这些格子里进行排列组合。如果它有两处,那么最终数组涉及的这个/这些数字,就只有这两处位置放,不是 a 就是 b;如果有三处,就是 a、b、c 来回换呗。那如果就一个位置呢?那我们只能让它就是这个数了。

如果你还理解不了,也没有关系。大不了你回去看看这个题。这个题里,6、7、8 的显性三数组是客观成立的。倘若我们先找到的是这个三数组,那么 4 就不会被纳入进来的话,那么它的删数就会算上 r8c7(78)。而要使得这个 4、6、7、8 显性四数组整体成立,r8c7 客观上还真不能存在除了 4、6、7、8 以外的数。那么,既然三数组成立了,r8c7(678) 就都能删掉。删掉之后,不就真只剩一个数了么?直接唯一余数,得到 r8c7 = 4。

不论哪种理解方式,这种情况都是可理解的。换言之,这种数组合法,但是有病。说这个的目的是告诉你两点:

  1. 有些时候,显隐性互补后会补出来一个合法但有病的数组。这种数组的特征是,规格很大,但内部其实存在一个规格更小的数组,换言之,其中有一些格子可以不用,数组照样能成立;

  2. 显隐性互补的特性在这种情况下用起来并不爽,而我们强行去理解它的本质,其实还是为了使得显隐性互补这个规则,在任何时候都客观成立,仅此而已。

那么,右图里的 r25c7(4) 的删数为什么成立,想必就不用我多解释了吧。

好了,所有直观技巧和局标技巧的全标状态就说完了。从下一篇文章开始,我们将正式进入到后续技巧的学习之中。

唯一余数用例
排除用例
宫区块用例
行列区块用例
显性数对用例
显性三数组用例
显性四数组用例
隐性数对用例
隐性三数组用例
隐性四数组用例
互补例子 1
互补例子 2
互补不正常的情况