grid_on

Sudoku Clean 素数独

技巧文档 / 剑鱼(三阶鱼)

剑鱼(三阶鱼)

小提示:剑鱼可以看成是 X翼(二阶鱼) 的升级版。 如果你还没看过 X翼,建议先从这里开始: X翼(二阶鱼)

进阶

剑鱼(三阶鱼)

小提示:剑鱼可以看成是 X翼(二阶鱼) 的升级版。
如果你还没看过 X翼,建议先从这里开始:
X翼(二阶鱼)

剑鱼其实不难,你可以把它想成一句话:

三行(或三列)把同一个数字“锁”进三列(或三行)里,于是这三列(或三行)里其它位置的同数字候选就可以删掉。

我们下面用 r1c1 来表示格子位置:
r 是行(row),c 是列(column)。


这招什么时候能用?

按下面三句话检查就够了(只盯一个数字 d):

  1. 找到三行(或三列)
  2. 在这三行里,d 的所有候选都落在同一组 3 列 的交叉点里(可以少,但不能跑到别的列)
  3. 这就像织了一张 3×3 的小渔网
    ⇒ 那 3 列里,渔网之外的候选 d 都可以删掉(同理也可以是“三列锁三行”)

你可以记成一句口诀:
“三行锁三列,网外同数全可删。”


一个演示例子(前三张图是同一个例子)

第 1 步:先找到“渔网”(上图)

剑鱼 演示(步骤 1)

先看上图:我们只关心第 4、6、8 行
你会看到数字 5 的绿色候选都落在 第 3、5、7 列 的交叉点里 —— 这就是剑鱼的“鱼身”(渔网)。

第 2 步:用一个“假设”帮助你理解(下图)

剑鱼 演示(步骤 2)

这一步不是要你真的去填数,只是帮你更直观地理解:

  • 假设 r8c3 填入 5
  • 那么 第 8 行其它格子就不能再是 5
  • 同时 第 3 列其它格子也不能再是 5
    所以下图里标红的候选 5 都会被排除掉。

第 3 步:你会发现它会“退化成 X翼”(下图)

剑鱼 演示(步骤 3)

当第 8 行的 5 被“固定”在渔网的某个角上时,剩下的第 4 行和第 6 行里,候选 5 会变得更“整齐”,又能构成我们熟悉的 X翼

这就是剑鱼的直觉:
不管第 8 行最终把 5 放在渔网的哪一个位置,这张渔网都会把 第 3、5、7 列里的 5 “占住”。
因此,这三列里渔网之外的候选 5 都不可能成立,可以删除。


一个真实题目示例(下图)

剑鱼 真实示例

先看下图:这题里由第 1、3、8 行组成剑鱼,鱼身落在第 2、4、8 列的交叉点上,目标数字是 2

你可能会注意到:

  • r3c4 已经是一个确定数字(不是候选)
  • r8c8 里并没有候选 2

这些都没关系。剑鱼的关键是:

在这三行里,数字 2 的所有候选位置都被限制在这三列的交叉点里。
可以少,但不能多。

所以第 2、4、8 列里,交叉点之外的候选 2 都不可能成立——下图用红色标出来的就是可以删除的候选。


更高阶的鱼

如果你已经理解了“三行锁三列”的剑鱼,那么更大的鱼其实就是把渔网放大:

  • 四阶鱼(水母):四行锁四列(或四列锁四行)
  • 五阶鱼:同理

推理方式完全一样:候选数被锁在渔网交点里,所以覆盖线里“交点之外”的同数字候选都可以删除。
我们这里不再单独展开写更高阶鱼,看到它们时就把剑鱼的思路套上去就行啦。