标准数独技巧教程
标准数独技巧教程
  • 数独概述
    • 初来乍到
    • 坐标
    • 数独历史
  • 直观技巧
    • 排除
    • 唯一余数
    • 剩余数的概念
  • 局部标记技巧
    • 割补(LoL)
    • 直观区块
    • 直观数组
      • 直观隐性数组
      • 直观显性数组
    • 直观复杂出数
  • 基础候选数技巧
    • 候选数的概念
    • 直观和局标技巧在全标下的样子
    • 标准鱼
      • 鱼的基本推理
      • 鳍鱼
      • 退化鱼
      • 孪生鱼
      • 鱼的直观和互补性
      • 鱼的命名
    • XY-Wing 及推广
      • XY-Wing 及推广的基本推理
      • XY-Wing 及推广的残缺逻辑
    • W-Wing
    • 唯一矩形(UR)
      • 唯一矩形的基本推理
      • 唯一矩形的类型
      • 残缺唯一矩形
    • 可规避矩形(AR)
    • 唯一环(UL)
      • 唯一环的基本推理
      • 唯一环的形成条件
      • 唯一环的规格推广
    • 拓展矩形(XR)
      • 拓展矩形的基本推理
      • 拓展矩形的规格推广
    • 全双值格致死解法(BUG)
      • 全双值格致死解法的基本推理
      • 全双值格致死解法的其他类型
    • 欠一数组(ALC)
    • 融合待定数组(SdC)
    • 跨区数组(DDS)
    • 伪数组(ESP)
    • 均衡数组
    • 烟花数组
      • 烟花数组的基本推理
      • 烟花数组的各种用法
  • 链理论
    • 双强链
    • 同数链和异数链
      • 同数链和异数链的定义
      • 头尾异数链的删数规则
      • 不连续环的两种模式
      • 有技巧名的异数链
    • 区块链
    • 待定数组链(ALS 链)
      • 链关系的第二定义
      • 有技巧名的待定数组结构
      • 在链里的待定数组
    • 隐性待定数组链(AHS 链)
    • 毛刺数组链
    • 待定唯一矩形链(AUR 链)
    • 待定可规避矩形链(AAR 链)
    • 环
      • 环的基本推理
      • 数组、鱼和欠一数对的环视角
      • 区块环
    • 强制链
      • 强制链的基本推理
      • 有技巧名的强制链
    • 动态链
      • 动态链的基本推理
      • 动态强制链
      • 动态环的删数分析
      • 动态区块环的删数分析
  • 包装
    • 染色法
      • 同数染色
      • 异数染色
    • 代数法
  • 构造
    • 唯一矩形构造
      • 唯一矩形的结构构造
      • 代入唯一矩形
    • Wing 构造
    • 毛刺和毛边
      • 毛刺的基本推理
      • 毛刺的使用
      • 毛边的基本推理
      • 毛边的使用
      • 毛刺环和毛边环
      • 毛刺、毛边的由来历史和翻译
  • 附录
    • 术语索引
  • 逻辑学基础
    • 逻辑学简要介绍
    • 分情况讨论和析取消去
    • 反证法
  • 组合数学基础
    • 抽屉原理/鸽巢原理
  • 其他
    • 作者介绍
    • 版权声明
由 GitBook 提供支持
在本页
  • 宫排除(Crosshatching in Block)
  • 行排除(Crosshatching in Row)
  • 列排除(Crosshatching in Column)
  • 问题答疑
  • 问题 1:在找行列排除时,宫内别处似乎也可以填它,为啥不能是它填?
  • 问题 2:为什么不惜打乱顺序,先讲宫排除?
  • 问题 3:做题的方式?
  1. 直观技巧

排除

Crosshatching

上一页数独历史下一页唯一余数

最后更新于2个月前

排除(Crosshatching),也叫排除法,是数独里最常见的一种技巧。按照游戏具备的行、列、宫三大要素,排除也会分为这样三个类型。

排除早期也被称为摒(bìng)除,一般认为是台湾地区引入数独的时候传入大陆的说法。后续还有一些技巧也会沿用台湾的叫法称呼,到时候也会说明一下。

宫排除(Crosshatching in Block)

我们把顺序调整一下,先来说说宫排除(Crosshatching in Block)。

如图所示,我们把目光聚焦到第 7 宫里。

哦对,第 7 宫是左下角这个宫。宫的编号按照从左到右、从上到下的次序依次编号。最上层的三个宫分别为第 1、2、3 宫,中间层的为第 4、5、6 宫,而最下层的则是第 7、8、9 宫。左下角编号是 7,所以就叫第 7 宫。

另外,按照本教程的“尿性”,我们后续会一直使用 RCB 表达。因为 r 表示行,c 表示列,而 b 表示宫,因此 b7 可直接用于表示第 7 宫。后续我们也会使用这种方式来描述一些行、列、宫的具体编号。

我们需要遵守的数独规则里,其中一点是要求每一个行、列、宫都要有完整的一套 1 - 9。遵循这个规则我们深思一下。一个行、列、宫都有恰好 9 个格子,而完整的一套数字 1 - 9 又刚好是 9 种不同的数。那么我们安排每一个数出现一个放进去的话,就刚好用完了全部的 9 个单元格。因此,一旦中间出现重复的数字,那么那个重复的数字就会占用两个单元格及以上的名额,导致余下的 8 种数字无法再合理地安排进去了。换言之,必然会有一个数字最后无法填入其中,即保证不了完整一套 1 - 9 了。所以,完整的一套 1 - 9 暗含了一个意思:所有的数字不允许出现重复项。

按照这个说法,显然 b7 也不例外。我们发现,由于 r2c1 和 r8c9 都是 1 后,他们各自的所在行和列上都不允许再出现第二个 1 了,否则就违反了“不允许有重复项”的规则。正是因为此规则,图中打叉的位置都不能是 1。而纵观整个 b7,就只剩下唯一一处可以填 1 的位置。因为 b7 没有 1,那么 1 必须出现在其中,因此我们只能把 1 安排在唯一的那一处位置上。因此我们就得到了 r9c3 = 1。

由于这个技巧的推理结论下在 b7 之中,所以我们把这个推理过程(我们所谓的“技巧”)称为宫排除,即通过排除得到宫内结论的一种手段。

行排除(Crosshatching in Row)

如图所示,图中除了黑色的提示数外,我们还可以通过才学到的宫排除完整一些蓝色位置的填数。我们把这些蓝色的数字称为填入数(Modifiable)。填入数有些时候也可以参与推理过程,并不是说填上之后就放在那里“吃灰”了。当然,填入数最后会因为我们的推理顺畅而变得越来越多,因此部分填入数确实不一定会发挥它的推理的作用,所以这取决于你自己的灵活变通了。

在早期的教程里,填入数还被称为确定值。不过本教程暂时弃用这种说法,因为不够直观。

此时我们观察第 3 行(也就是 r3)。我们可以明显观察到,第 3 行需要满足一套完整的 1 - 9 的话,只缺少 5 和 9 尚未填入了。

而只关注于 5 的话,我们可以明显发现,r9c2 是 5。因为同列不能填入重复的 5,因此身处同一列的 r3c2 自然就不能是 5 了。那么,由于 r3 必须拥有一个 5 的填入,因此填入 5 的机会只能给到 r3c8。因此,图中的结论就是 r3c8 = 5。

我们把这个技巧称为行排除(Crosshatching in Row),因为他的填数位置是在 r3 之中的。

列排除(Crosshatching in Column)

下面我们来说说最后一种类型的排除。

如图所示,这一次我们把目光聚焦到第 8 列(即 c8)。

我们发现,数字 7 没有出现在 c8 里,因此 7 必须填进去一个。随后我们发现,r1c2 已经是 7,所以同一行不能填入 7,所以与之同一行的 r1c8 自然就不能是 7 了。不过,还剩下三处打叉的位置,这又是怎么排除的呢?

其实这里我们只需要一个数就可以参与排除了。注意到 r4c7。由于数独规则里,同一个行、列、宫里都不能有重复的数字。我们前面用到的只有行和列,这里我们要用到的是宫的排除因素。因为同一个宫也不允许有重复的数字,因此 7 出现在 b6 之中,也就意味着 b6 的别处都不能填入 7。所以,三处打叉的位置都和这个单元格同宫,因此他们都不能是 7。

这么一说,这个 7 的位置就比较明了了。c8 里此时仅剩下唯一一处填入 7 的位置:r2c8。因此,它必须是 7。

我们把这个技巧称为列排除(Crosshatching in Column),因为结论下在 c8。

另外,行排除和列排除在不那么需要强调行还是列的时候,也可以合并称为行列排除(Crosshatching in Line)。

问题答疑

下面列举一些常见的、关于排除技巧的问题。这可能对你初学排除技巧有所帮助。

问题 1:在找行列排除时,宫内别处似乎也可以填它,为啥不能是它填?

为了更加详细地解释这个问题,我们使用前面行排除的题目给大家解释一下问题问的是什么。这个问题也是经常有朋友询问我的一个问题。

如图所示。这就是刚才的那个行排除的题。有些朋友会问,我们使用了行排除的推演逻辑,用到的是下方 r9c2 处的 5。这个 5 虽然可以得到 r3c8 = 5 的推演结论,但是凭什么 r1c8 就不能是 5 了呢?

我个人觉得,问出这种问题的朋友具有发散的思维,这是好事。但这里我们并未对 r1c8 是否是 5 作出任何的推断。相反,数独的三大约束条件:行、列、宫的重要性是等同的。我们知道宫的逻辑后,就很容易思维转不过来,而在看行列排除时,误用或错用宫的逻辑去思考它,导致推断逻辑的混淆。显然,这里 r1c8 是否是 5 并不重要。我们观察的点始终都在 r3 上。

而从另一个角度来说,有些朋友更希望使用反证法的思维去推演矛盾,进而得到假设错误的思路。套用在这里也是可行的。比如我们反过来思考这个地方。如果我们让 r1c8 = 5,那么因为 r3c8 和 r1c8 同宫(也可以理解为同列),因此 r3c8 就不能填 5 了。而它不能是 5,同行还剩下唯一一处空格 r3c2 也会被最下面 r9c2 的 5 给排除掉,这导致了一个问题:r3 将不存在任何空格填 5。而它必须填有一个 5 以满足一套完整 1 - 9 的规则。所以这不就矛盾了嘛。因为假设的是 r1c8 = 5,所以假设不成立,故 r1c8 它不能是 5。

这种理解也没毛病,但这稍微绕了一些。我仍然推荐用正向的思路去理解这个问题。

总之,数独是一个严格的推理游戏,一旦有一个环节有错误的推断,那么后面必然就会产生矛盾。

问题 2:为什么不惜打乱顺序,先讲宫排除?

这个问题其实存在一个非常具有说服力的原因:因为宫的观察更简单。

虽然宫是数独所独有的一种概念(你想想看,别的表格类型的谜题玩法是不是一般都只有行和列两种要素),所以相对于其他谜题玩法来说,数独的宫的因素更为陌生。初学肯定是比较难受的。但是,它的外观是 3 × 3 的正方形形态。不论放在盘面的哪一个位置(左上角也好、右下角也好,中间也好,两边也好),似乎这个正方形的形状都不会因为放的位置而变化。

这个的好处在于,它更容易被我们的人眼所聚焦。所有的 9 个单元格分布在比较紧凑的一坨里,这反而让我们觉得宫的聚焦更加容易。剩下的就是数空格的填数缺少什么,以及走外面找“外援”(排除项)了。然后我们再反过来看行列排除。行列排除最致命的问题是,它是 1 × 9 或 9 × 1 的长条形状。但凡盘面稍微大一些(物理层面的大——像素点更多、图片更大之类的),我们的人眼就必须尝试去从上往下、从左往右扫描一遍完整的 9 个格子,才能得到缺少的数字。

而缺少的数字有些时候会比较难以得到。因为数数稍微慢一些的朋友会觉得,缺少的数字需要我们大脑里临时记一下,而本身长条形状的 9 个单元格会让我们做起题来潜移默化增大了难度——又要临时记忆,又要横纵大幅度扫描。这便是行列排除比较致命的问题。所以,它的推理逻辑都不难,难的点仅在于观察上。

我在建议你做题的时候,也使用先宫排除,后行列排除的方式来完成。在迫不得已的时候(例如题确实没有宫排除的可用结论,或实在是找不着宫排除的时候),再来找行列排除;灵活变动你的推理思维,这是最重要的。

问题 3:做题的方式?

这是第一个讲解的数独技巧,因此需要给大家介绍一下,做题的一些方式和套路,以便在你不熟悉数独的时候也有一个下手的切入点。

数独虽然看起来难,它满篇都是数字,但它的题目在平时我们不论在 app 上,还是网上找到的打印的题目,都并不难。从最入门的技巧开始,排除都是我们的必经之路,因此,排除肯定是最常见的数独技巧,这样的题目也肯定占比更多。

这并不是说数独没有难题。但数独现阶段作入门来讲,排除肯定是最基础的技巧,所以不论难度怎么划分,只要是入门级的题,就势必可以只用排除技巧完成。我们不要拘泥于某个达成的目标,比如做题的耗时什么的。先从 0 到 1,再尝试从 1 到 10,再从 10 到 100。这个循序渐进的过程是必须有的。初学数独的时候,哪怕只用宫排除的题目,做 20 分钟甚至更多时间的朋友大有人在,而如果你一旦熟悉了这个技巧,那么提速就会非常快,甚至进入 10 分钟、5 分钟,甚至 3 分钟以内。我们一定要有耐心。

这是第一个要说的。第二个要说的是,我们怎么去找切入点。我拿一个例子给大家介绍一下,我是怎么做题目的。

如图所示。我们要想完成它,就需要找一个切入点。我们刚才学到的排除,不论是宫还是行列排除,全都是只跟单一的数字有关的技巧。那么我们尝试按数字,将提示数分为 9 种不同的阶段来逐一完成;如果发现某一个数无论如何也完整完成不了,也别灰心,可能题就是这么设计的,那么跳到下一个数继续做就行了。

举个例子。这个题目我们先从数字 1 切入,看看 1 的分布都有哪些位置。很明显我们发现到,第 3、6、7 宫还没有填 1。刚才我们说我们优先找宫排除,所以我们就按第 3、6、7 宫的次序逐一击破即可。

RCB 表达可以简写。例如第 3 宫、第 6 宫和第 7 宫可以直接把数字拼在一起,简写为 b367。这个用法后续可能会用到,到时候也会反复强调,直到我觉得你记住了它为止。

先看 b3。我们发现似乎 b3 并没有合适的、关于数字 1 的结论,因为似乎 r1c7 和 r1c9 都可以填 1,那我们就跳过它,来看 b6。b6 可以填 1 的位置只有 r4c9。这很明显。

同理,b7 也存在可以填 1 的位置,将其填入。

所以我们连续填出两个 1 的位置。由于 b6 填了 1,所以整个盘面里还剩下唯一一处 1 的位置,把他填上即可。

这样一来,所有的数字 1 全部被我们击破。此时,盘面还剩下 8 种数字没有填了,我们继续填 2 即可。后面的数字就不再演示了。这个题的难度也不大,可以自己从头做一下。

宫排除
行排除
还是那个行排除
一个宫排除的题目
b6 填 1 的位置
b7 填 1 的位置
1 全部填完