数独三招基本功:唯余法、排除法、区块排除,看懂就不用猜

· 约 6 分钟 🔢 数独

数独的规则一句话就说完:把 1–9 填进 9×9 的格子,让每行、每列、每个 3×3 宫内 1–9 各出现一次。但从「知道规则」到「不卡住」之间,差的是三招基本功。

它们覆盖了绝大多数常规题,也正好对应本工具提示时给出的三种理由。看懂之后就不用猜了——事实上工具生成的题从来不需要猜,这一点后面会说到。

第一招:唯余法(唯一候选)

从格子出发问:这一格还能填什么?

一格的「同伴」是它所在的行、列、宫的全部格子。如果这些同伴已经占掉了 8 个不同数字,那么这一格只剩一个数字可填。

r5c5 的同行、同列、同宫里已经出现:1 2 3 4 5 6 8 9

                            r5c5 只能填 7

这是最直观的一招,也是新手唯一会用的一招——问题正出在这里

第二招:排除法(唯一位置)

从数字出发问:这个数字还能放哪儿?

在一个宫(或一行、一列)里,某个数字的可放位置被别处的同数字封杀到只剩一格,那一格就是它。

看一个可以照着数的例子。关注宫 1(左上 3×3)里的数字 3

       c1 c2 c3 │ c4  …
r1      ·  ·  · │  3        ← 第 1 行已有 3,宫 1 第 1 行整排排除
r2      ·  ·  ★ │  ·
r3      3  ·  · │  ·        ← 第 3 行已有 3,同时封住第 1 列

r7      ·  3  · │  ·        ← 第 2 列已有 3

逐格排掉:

  • r1c1 / r1c2 / r1c3 —— 第 1 行已有 3
  • r3c2 / r3c3 —— 第 3 行已有 3
  • r2c1 —— 第 1 列已有 3(就是 r3c1 那个)
  • r2c2 —— 第 2 列已有 3

只剩 r2c3(★),它必须是 3。

注意这个局面下 r2c3 的候选可能还有好几个——唯余法看不出来,只有从数字出发才能发现。这就是两招视角正交的意思。

开局请从这一招开始。 起手盘面空,单个格子候选往往四五个,盯格子看不出结果;而「某数字在某宫只剩一格」在开局非常多。拿定一个数字扫完 9 个宫,1–9 走一遍,通常能填出十几个。

这一招在中文数独圈也叫摒除法,英文叫 hidden single。

第三招:区块排除

前两招都是直接填数,这一招不填数,它排除候选——用完之后要回头再走前两招。也正因为如此,它放在最后。

规则有两个方向。

方向一:宫 → 行/列

某个数字在一宫内的候选格全挤在同一行(或同一列),那么这一行上、该宫之外的格子都可以排除它。

关注宫 1 里的数字 7

       c1 c2 c3 │ c4 c5 c6 │ c7 c8 c9
r1      ·  5  · │  ?  ?  ? │  ?  ?  ?
r2      2  ·  9 │  ·  ·  · │  7  ·  ·   ← 第 2 行已有 7
r3      4  1  8 │  ·  ·  · │  ·  ·  ·

宫 1 的空格是 r1c1、r1c3、r2c2。其中 r2c2 因为第 2 行已有 7 而排除,于是 7 在宫 1 里只能落在 r1c1 或 r1c3——都在第 1 行

7 一定要在宫 1 出现一次,那它一定出现在第 1 行的这两格之一。结论:第 1 行上 c4–c9 的所有格子都可以排除 7(图中标 ? 的位置)。

排掉之后回头看:如果 r1c6 原本的候选是 {3, 7},现在就只剩 3——唯余法立刻可用。这就是三招接起来的样子,也是工具提示里「区块排除后再找唯一候选」那条理由的来源。

方向二:行/列 → 宫

反过来也成立:某个数字在一行内的候选格全落在同一宫里,那么这一宫内、该行之外的格子都可以排除它。

两个方向本质是同一件事——候选被锁在了一个行与宫的交叉区块里,所以英文叫 locked candidates。中文有时叫「宫区块」和「行列区块」。

术语对照

不同来源的叫法很乱,对上号就不会被绕晕:

本工具中文常见别名英文视角
唯一候选唯余法naked single盯格子
唯一位置排除法、摒除法hidden single盯数字
区块排除宫区块、行列区块locked candidates排候选

卡壳时的三条自查

按顺序过一遍,多数卡壳当场就解开了:

  1. 1–9 每个数字都完整扫过一遍 9 个宫了吗? 最常见的是只扫了自己觉得「快满了」的那几个数字
  2. 只扫宫、忘了扫行和列吗? 「某数字在这一行里只剩一格」同样成立,很多人只在宫里扫
  3. 填完一个数之后重新扫了吗? 每填一个数字都会给它所在的行、列、宫开新口子,下一步最可能就在这三处

养成第 3 条的习惯,比学任何新技巧提速都明显。

三条都走完还推不动,才轮到区块排除。

已知数少不等于难

「已知数越少越难」是最普遍的误解。已知数只决定起手有多空,真正决定难度的是填完全程需要用到多深的技巧——26 个已知数的题可能一路唯余法推到底,30 个的反而可能卡在区块排除上。

工具的四档难度因此是按技巧深度挖的:

档位已知数通常要用到的最深技巧
入门45几乎全程唯余法
简单36唯余法为主,约两成要排除法
困难30大多要排除法,少数要区块排除
专家22–28排除法必用,约四分之一要区块排除

挖空是逐格验证着挖的:每挖掉一个数字都要确认「剩下的盘面仍然只靠这几招就能填完」,挖不动就停。入门 / 简单档的判据是两招,困难 / 专家档放宽到三招。

判据比「唯一解」更强,所以唯一解是顺带保证的——能一路推到底,自然只有一个解。这也是四档全都不需要猜、提示永远讲得出理由的原因。

顺带一个硬事实:唯一解数独的已知数下限是 17 个,2012 年 McGuire 等人用穷举计算证明了 16 个已知数不可能有唯一解。所以看到「只有 20 个数字的超难题」不必被格数吓到,要看的是技巧深度。

三招之外还有什么

外面的题(报纸、杂志、各类 App)不一定保证「能用人类技巧推出来」——很多出题程序只验证唯一解,而唯一解可以靠回溯搜索确认,那条路机器能走、人走不了。碰上这种题就需要进阶技巧:

  • 数对 / 隐性数对——两个格子的候选恰好是同两个数字,这两个数字就锁在这两格里,同单元其它格可以排除它们
  • X-Wing、Swordfish——同一数字在两行里的候选位置恰好占同两列,形成矩形约束
  • 各类链——沿候选之间的逻辑关系传递假设

需要这些的题可以把题面敲进数独求解器:它的「下一步」内置的正是本文这三招,推不动时会明确告诉你需要更深的技巧,求解按钮仍然给得出完整答案。自己出的题想验合格性,见为什么必须唯一解

练习时的两个小设置

提示怎么用:按一次只高亮目标格并说明理由,再按一次才真正填入——中间那一步是留给你自己想的。想认真挑战成绩就一次都别按(用过提示的局不计入本档最佳时间);想学技巧就放心按。

计时会在切到后台时暂停。一局数独动辄十几分钟,挂着不算成绩才公平。进度、铅笔标记、用时、提示次数都存在本机浏览器里,关掉页面再回来接着填,不上传、不需要登录。


开一局练手:数独四档难度都保证唯一解且不需要猜。想换个动脑子的:数独求解器能把任何题面逐步讲一遍,魔方 3D 教程的入门路径见CFOP 4 步还原国际象棋开局的三原则见开局三原则与主线入门

❓ 常见问题

三招应该按什么顺序扫?

开局先扫数字(排除法),中局转扫格子(唯余法),卡住了才看区块为什么开局要扫数字:起手盘面很空,单个格子的候选数往往还有四五个,盯着格子看基本看不出结果;而「某个数字在这一宫里只剩一格能放」在开局非常多——已知数越少、每个数字的分布越稀疏,这类机会反而越明显。具体扫法:拿定一个数字(比如 7),依次看 9 个宫,用已经有 7 的行和列去封杀格子,看剩下几格。中局转唯余法:填了二十来个之后,很多格子的候选被压到只剩一个,这时逐格看比逐数字看快。卡住了才用区块:它是个「排除候选」而不是「直接填数」的技巧,用完还要回头再走前两招——所以放最后。一个实用信号:如果你连着扫两轮数字都没进展,八成该找区块了。

我总是卡住,通常是漏了哪一招?

九成是只会盯格子,不会盯数字典型症状:把每个空格的候选数都算了一遍,发现没有只剩一个候选的,就认为「这题需要更高级的技巧」——其实往往有好几个「唯一位置」摆在那儿。两招的视角是正交的:(1) 唯余法问「这一格还能填什么」,从格子出发;(2) 排除法问「这个数字还能放哪儿」,从数字出发。同一个局面下,可能所有格子都有 2 个以上候选,但某个数字在某一宫里只剩一格——这时只有第二种视角能看见。自查三条:(1) 有没有对 1–9 每个数字都完整扫过一遍 9 个宫?(2) 有没有只扫宫、忘了扫行和列?「某数字在这一行里只剩一格」同样成立;(3) 有没有在填完一个数之后重新扫?每填一个数字都会给相邻单元开新口子。这三条走完还推不动,才轮到区块排除。

铅笔标记和自动候选,该用哪个?

入门期用自动候选理解「排除」这件事,之后切回铅笔两者的区别:(1) 铅笔是你自己动手记的候选数,记错了也不会有人管你——这是纸笔数独的标准做法,也是训练的一部分;(2) 自动候选由程序按规则实时算出每格还能填什么,永远正确,但它把「排除」这个最核心的动作替你做了。为什么入门期值得开:新手最难建立的直觉是「一个数字填下去会影响多少格」,自动候选能把这个连锁反应可视化——填一个数,一片候选跟着消失,看几遍就懂了。为什么之后要关:一直开着会退化成「找只剩一个候选的格子」的机械劳动,练不出扫描能力,遇到纸质题就完全不会做。两者互斥(开自动候选时铅笔标记暂时隐藏)。一个省事的细节:填入数字时,同行、同列、同宫里该数字的铅笔标记会自动清掉,不用手动擦。

已知数越少的题越难吗?

不一定,这是最普遍的误解之一已知数只决定「起手有多空」,真正决定难度的是填完全程需要用到多深的技巧:26 个已知数的题可能一路唯余法推到底,30 个已知数的题反而可能卡在区块排除上。工具的挖空判据就是按技巧定的,不是按个数:入门 / 简单档全程只允许唯余法 + 排除法,困难 / 专家档放宽到三招(多一个区块排除),挖不动就停。所以四档之间的差异既来自空多少,也来自技巧深度。顺带一个硬事实:唯一解数独的已知数下限是 17 个——2012 年 McGuire 等人用穷举计算证明了 16 个已知数不可能有唯一解。所以看到「只有 20 个数字的超难题」时,可以先想想:它可能只是空得吓人,实际推起来很顺;也可能真的需要链,得看技巧深度而不是数格子。

什么时候会需要数对、X-Wing 这些进阶技巧?

本工具生成的题永远不需要,报纸杂志和 App 上的题偶尔需要工具的保证:挖空过程中每挖一格都验证「剩下的盘面仍能只靠这三招填到最后一格」,不满足就把数字放回去。所以四档全都不需要猜,提示也一定讲得出理由,不会退化成直接报答案。外面的题为什么会更深:很多出题程序只保证唯一解,不保证「能用人类技巧推出来」——唯一解可以靠回溯搜索验证,但那条路机器能走、人走不了。进阶技巧大致的层级:(1) 数对 / 隐性数对——两个格子的候选恰好是同两个数字,这两个数字就锁在这两格里,同单元其它格可以排除它们;(2) X-Wing、Swordfish——同一数字在两行里的候选位置恰好占同两列,形成矩形约束;(3) 各类链——沿着候选之间的逻辑关系传递假设。遇到需要这些的题,可以把题面敲进数独求解器,它的「下一步」推不动时会明确告诉你需要更深的技巧,求解按钮仍然给得出答案。

提示为什么先高亮讲理由、要按第二次才填?

因为看懂理由比拿到答案有用得多设计原因:卡住的时候通常不是算不出来,而是没想到该往哪一类结构上看。直接把数字填进去,你下一次遇到同类局面还是卡;而告诉你「这一格是唯一候选」还是「这个数字在这一宫只剩这一格」,就等于指出了刚才漏扫的那个视角。三种理由正好对应三招基本功,跟着走两三局就能摸到套路。所以按一次只高亮 + 说明,再按一次才真正填入——中间那一步是留给你自己想的。代价说明:(1) 用过一次提示,这一局就不进本档最佳成绩,否则一路按提示就能刷出最好时间,纪录也没意义了;(2) 提示次数会显示在状态栏,完成时也会写明用了几次。怎么用最划算:想认真挑战成绩就一次都别按;想学技巧就放心按,它是本工具里唯一会讲道理的部分。

🔢 打开 数独 四档难度在线数独·唯一解且不用猜·铅笔标记/自动候选·提示讲得出理由·计时与最佳成绩本地存

🔗 相关阅读

全部教程 →