Sudoku Explained

进阶 约 8 分钟

先看什么,后看什么

多数卡死的盘面不难。它们只是被按错误的顺序扫了,于是便宜的一步被贵的一步挡在后面。

一句话版本

每个技巧都有价格,价格就是注意力。唯一数一眼的事,鱼要数一分钟,链要花掉你剩下的全部耐心。

卡死的盘面,几乎都是「便宜的一步被漏掉、而贵的一步被反复找」的盘面。所以按固定顺序扫,最便宜的先上,只有在当前这一层完全没产出时才升级。

顺序

这个顺序站得住,而且在各个难度上都稳定:

  1. 裸单——只剩一个候选的格子。
  2. 隐性唯一数——在某个单元里只剩一个家的数字。
  3. 宫线互斥——区块摒除和行列摒除,两个方向都要。
  4. 显性数对、显性三数组——同一单元里相同的短候选表。
  5. 隐性数对、隐性三数组——被锁在同一小组格子里的数字。
  6. 鱼——X-Wing、剑鱼、水母。
  7. 翼——XY-Wing、XYZ-Wing、摩天楼。
  8. 唯一性与链——唯一矩形、反证链。

这个排序不是随意的。第 1、2 步不需要候选表;第 3 步每个宫或每条线数一次;第 4、5 步需要候选表;第 6、7 步需要候选表并且在平行线之间系统地数;第 8 步需要上面所有东西再加一本账。

「扫一遍」到底是什么意思

「扫一遍唯一数」这句话,没定义清楚之前是没法执行的。一个你能真正做完的定义是:

这是 9 × 27 = 243 个问题,练熟之后每一个都在一秒之内答完。其中任何一个给出填数,就填上,然后从数字 1 重新开扫。不要从刚才那个数字继续——盘面已经在脚下变了。

243 个问题全部空手,才是一个真实的信号。那时候再升级。

过早升级是最常见的失败

失败的原因不是懒,是无聊。

唯一数很重复,空扫几轮之后,人就想去找点有意思的——X-Wing、翼、链——因为那些才像进展。而真正的堵点,常常是一个你已经扫过两遍的宫里、在上一次落子那一刻才出现的隐性唯一数,之后没人再回头看过。

纪律是:只有在当前这一层完整地空扫一遍之后,才升级。不是两个宫感觉卡了,不是「这题看着挺难」,是一整轮,扫完,再走。

什么时候写候选数

时机和顺序一样重要。候选表应该出现在第 3 步和第 4 步的交界处。

在这个交界之前,候选数是开销:第 1 到 3 步都能靠数盘面上看得见的数字完成。过了这个交界,候选数是必需的:两张候选表不写下来,你没法比较。

实用的触发条件是:九个数、两个方向的区块摒除和行列摒除全都空手的时候。 那时候盘面已经不再一眼可读,候选表开始对得起成本。写早了会变慢,写晚了就是在凭记忆猜数对,而假象就是这么产生的。

什么时候、怎么记候选。

全都空手的时候做什么

如果你在每一层都完整扫过,盘面还是不动,先怀疑盘面,别怀疑题目。

  1. 复核一个填满的单元。 挑最满的一行,把它的数字加起来。一个错数会污染下游所有候选,而症状恰好就是这个:一张怎么弄都不动的盘面。
  2. 检查是不是有两个解。 如果题目有两个解,一些标准技巧会拒绝生效,因为它们默认依赖唯一性。这在出版物里罕见,在手工题里常见。
  3. 看候选数分布。 如果好几格都有三个以上候选、一个两候选都没有,那你已经进入鱼和翼的地界了,不存在便宜的一步。那不是失误,那就是题目本身。
  4. 到这一步才考虑链。反证是正当的、慢的,应该是最后手段而不是第一手段。

用在哪

每次都用同一个顺序,简单题也一样。这个习惯才是难题可控的原因:当盘面终于卡住,你确切知道自己哪一层已经空扫过,于是永远不会在「下一步该看哪儿」上猜。

还有一个好处容易被忽略。固定顺序让你的错误变得可查。如果盘面卡住,而你知道每一层都完整扫过了,那问题几乎肯定在某个候选数上,而不是漏了某个技巧——那是一个小得多的范围。

常见疑问

找技巧应该按什么顺序?

最便宜的先上:唯一数、宫线互斥、数对三数组、鱼、翼、链。每一步比的都比前一步更耗注意力。

什么时候该换下一层技巧?

当当前这一层的扫描在每个单元、每个数字上都没有产出时。完整地空扫一遍,才是升级的信号。

一定要写候选数吗?

不用。扫描开始不出结果的时候再写,不是一开始就写。在盘面还能一眼读的时候,候选表是纯开销。

全都查过还是卡住怎么办?

要么某个候选数是错的——这非常常见——要么这题需要链。在断言题目超纲之前,先复核一个已经填满的单元。