入门 约 6 分钟
一格里只剩一个数
一个空格,一个活下来的候选。这是数独里最简单的一步,也是最容易被和它的表亲搞混的一步。
一句话版本
裸单是指一个空格,九个数字里已经有八个被排除掉。剩下的第九个不是猜测、不是可能性、也不是手感——它是这个格子唯一合法的取值,填上去,继续走。
推理本身没什么可讲的。真正的工作量在「找到它们」,而这件事本质上是记账:候选数不写下来,一个只剩一个选项的格子,看起来和剩四个的格子一模一样。
「裸」是什么意思
这个词不是修饰。在数独里,一条信息如果就摆在这个格子自己身上,叫裸;如果它只存在于这个格子所属的单元里,叫隐。
裸单之所以裸,是因为约束在这一个方格里就能看见:你盯着这个格子,数一数还剩什么,只有一个数字。不需要拿它和盘面上任何其他地方比对。
为什么这一步是强制的
每一行、每一列、每一个 3×3 宫,都必须恰好出现 1 到 9 各一次。随便取一个空格:如果某个数字已经在它的行里出现,这个格子就不能填它;列同理;宫同理。
所以一个格子的候选列表,就是 1–9 减去这三个单元里已经看得见的所有数字。当这个减法只剩一个数字,这个格子就只有一个合法值,没有第二个。
还有一个不太舒服的推论:如果你走到某一格,发现一个数字都放不进去,那不是你遇到了一道难题,而是你前面某一步填错了。正确的反应是撤销,不是硬猜。
一张真实盘面
下面这个局面取自一局真实对局。我们要看的是第 1 行第 2 列。
看看它周围有什么:
- 第 1 行已经有 9、1、7、8。
- 第 2 列再添上 3、4、2。
- 左上宫又补了一个:6。
合起来是 1、2、3、4、6、7、8、9——八个不同的数字。缺一个。R1C2 就是 5,没有任何需要犹豫的地方。
注意:没有任何一个单元单独够用。行排掉四个数字,列再排掉三个,这个格子仍然剩两个候选——5 和 6。是宫把它定下来的。这就是为什么只查行和列的人总在裸单上漏格:在这个盘面上,只看两个单元,你拿到的是一个看起来像掷硬币的格子。
扫盘的固定顺序
裸单总是扎堆在盘面密集的地方,随机看只会浪费时间。一个能用的顺序:
- 填完一个单元再看下一个。 你落一个数字,它的行、列、宫各少一个候选。这二十来个格子要立刻复查——下一个裸单通常就出现在这里。
- 从周围最满的区域开始。 邻居里填好的数字越多,候选列表越短,而短列表核起来最便宜。
- 数个数,别列清单。 你要回答的不是「这格能填哪些」,而是「这格还剩几种可能」。答案是一,就填。
- 优先看候选不超过四个的格子。 一个显示六个候选的格子几乎不可能是裸单;跳过它不是偷懒,是分诊。
在候选数维护得干净的盘面上,这套顺序找裸单基本是每个格子几秒钟。
最容易丢掉时间的三个地方
忘了宫。 遥遥领先的第一名。行和列在视觉上太明显,宫的边界只是一条细线,看十分钟就看不见了。每一次裸单检查都是三个单元,不是两个。
改错之后还信旧的笔记。 你擦掉一个填错的数字,它当初挡掉的那些候选不会自己回来。一条过期的笔记能把「两个候选」的格子伪装成裸单,然后错误会安静地传播好几步,直到盘面自己撞墙。
该数数字的时候在数格子。 裸单是格子形状的,隐单是数字形状的。卡住的时候换个扫描方向,经常几秒钟就动了。
裸单、隐单,同一个落子
这两者特别容易混,因为它们常常从两个方向指向同一个答案。
| 裸单 | 隐单 | |
|---|---|---|
| 你数的是 | 一个格子里的候选 | 一个数字在一个单元里的落脚点 |
| 成立条件 | 恰好一个候选 | 单元里恰好一个格子放得下它 |
| 扫描方式 | 一格一格看 | 一个数字一个数字看 |
| 典型失误 | 漏掉宫 | 没看出这个数字被挤到墙角 |
两者没有高下之分。系统地从 1 扫到 9 时,隐单往往更好看见;而一个格子周围填满时,裸单更好看见。会做题的人是交替用的。
裸单也标志着开局的结束。等每个空格都只剩两三个候选,一格一格扫就不再划算了——接下来该做「看数字」的活,比如隐性数对。
常见疑问
什么是裸单?
一个空格被它所在的行、列、宫排除了其他八个数字,只剩一个候选。填入它是强制的,不是猜的。
裸单和隐单是一回事吗?
不是。裸单是「一个格子里只剩一个候选」,隐单是「一个数字在某个单元里只剩一个落脚点」。两者经常指向同一个落子,但你是从相反的方向扫出来的。
裸单会错吗?
推理不会错,候选数会错。如果前面某一步填错了,剩下那个数字就是错的,而且盘面会静悄悄地错上好几步才自相矛盾。
需要把候选数写下来吗?
找裸单需要。你没法凭空看出一个格子只剩一个选项——除非你已经在别处把另外八个排除掉,并且写在一个看得见的地方。