剑鱼

Swordfish

★★★ 高级

概要:剑鱼(Swordfish)是 X-Wing 从 2×2 到 3×3 的自然扩展。若某候选数在三行中每行最多出现两个位置,且这些位置集中在恰好三列中,则该候选数在整个三列的其余行中可以全部消除。反之对三列也同样成立。

什么是剑鱼?

剑鱼(Swordfish)是 X-Wing 的三阶扩展,是数独中最经典的高级技法之一。

先回顾 X-Wing:若某候选数在两行中各恰好出现 2 次,且这 4 个位置落在同两列中,则该候选数在这两列的其他行可以全部消除——因为这两行的候选数”占据”了这两列的所有合法位置。

剑鱼将这个逻辑扩展到三行:

若某候选数在三行中每行最多出现 2 个位置(至少一行恰好 2 个),且这些位置加在一起落在恰好三列中,则该候选数在这三列中除这三行以外的所有格子,都可以被消除。

为什么有效?

这三行必须在这三列中分配该候选数的位置。无论具体怎样分配,每一列中这三行之外的格子都不需要、也不能再承担该候选数——否则该候选数在某列中会出现多次,违反数独规则。

注意:每行的候选数位置可以是 1 个或 2 个(不要求每行都是 2 个),但三行的位置总并集恰好是三列。

解题步骤

  1. 选定候选数字 N:扫描盘面,寻找在各行中出现 1-2 次的候选数

  2. 找三行:找三行,使得候选数 N 在每行中最多出现 2 次,且三行所有位置合计覆盖恰好 3 列

  3. 验证

    • 三行中 N 的所有列坐标集合大小 = 3
    • 每行至少有 1 个位置,至少一行有 2 个位置
  4. 消除:在这三列中,将不属于这三行的所有格子中的候选数 N 删除

  5. 对称检查:同样的逻辑对列方向也成立(三列 + 三行方向的消除)

示例详解

步骤 1:棋盘总览

7 1 4 3 9 3 7 1 4 8 1 6 8 9 7 5 2 4 6 8 2 1 5 1 3 6 8 1 9 7 2 4 3 5 7 2 3 5 9 1 4 1 5 4 7 9 6 8 2 3 8 4 1 5 2 5 6 8 2 6 8 2 5 6 9 6 9 2 6 2 5 6 2 5 3 4 3 4 3 5 3 7 9 3 5 9 7 9 2 4 2 4 7 9 2 9 7 9 6 8 6 8 6 8 6 8 2 3 6 2 3 6 9 2 3 6 9 6 7 6 7
观察棋盘:已知数字和所有空格的候选数。

步骤 2:让我们观察数字6的候选数分布。先看第2行、第6行和第7行——在这三行中,6的候选数出现在哪些列?

7 1 4 3 9 3 7 1 4 8 1 6 8 9 7 5 2 4 6 8 2 1 5 1 3 6 8 1 9 7 2 4 3 5 7 2 3 5 9 1 4 1 5 4 7 9 6 8 2 3 8 4 1 5 2 5 6 8 2 6 8 2 5 6 9 6 9 2 6 2 5 6 2 5 3 4 3 4 3 5 3 7 9 3 5 9 7 9 2 4 2 4 7 9 2 9 7 9 6 8 6 8 6 8 6 8 2 3 6 2 3 6 9 2 3 6 9 6 7 6 7
让我们观察数字6的候选数分布。先看第2行、第6行和第7行——在这三行中,6的候选数出现在哪些列?

步骤 3:数字6在这3行中,只出现在第1列、第2列和第3列!第2行在第2、3列;第6行在第1、3列;第7行在第2、3列。

7 1 4 3 9 3 7 1 4 8 1 6 8 9 7 5 2 4 6 8 2 1 5 1 3 6 8 1 9 7 2 4 3 5 7 2 3 5 9 1 4 1 5 4 7 9 6 8 2 3 8 4 1 5 2 5 6 8 2 6 8 2 5 6 9 6 9 2 6 2 5 6 2 5 3 4 3 4 3 5 3 7 9 3 5 9 7 9 2 4 2 4 7 9 2 9 7 9 6 8 6 8 6 8 6 8 2 3 6 2 3 6 9 2 3 6 9 6 7 6 7
数字6在这3行中,只出现在第1列、第2列和第3列!第2行在第2、3列;第6行在第1、3列;第7行在第2、3列。

步骤 4:3行 × 3列 = 剑鱼图形!数字6被锁定在这6个交叉点之内。

7 1 4 3 9 3 7 1 4 8 1 6 8 9 7 5 2 4 6 8 2 1 5 1 3 6 8 1 9 7 2 4 3 5 7 2 3 5 9 1 4 1 5 4 7 9 6 8 2 3 8 4 1 5 2 5 6 8 2 6 8 2 5 6 9 6 9 2 6 2 5 6 2 5 3 4 3 4 3 5 3 7 9 3 5 9 7 9 2 4 2 4 7 9 2 9 7 9 6 8 6 8 6 8 6 8 2 3 6 2 3 6 9 2 3 6 9 6 7 6 7
3行 × 3列 = 剑鱼图形!数字6被锁定在这6个交叉点之内。

步骤 5:第6行中,6只能在第1列或第3列。第2行中,6只能在第2列或第3列。第7行中,6只能在第2列或第3列。三个6必须各...

7 1 4 3 9 3 7 1 4 8 1 6 8 9 7 5 2 4 6 8 2 1 5 1 3 6 8 1 9 7 2 4 3 5 7 2 3 5 9 1 4 1 5 4 7 9 6 8 2 3 8 4 1 5 2 5 6 8 2 6 8 2 5 6 9 6 9 2 6 2 5 6 2 5 3 4 3 4 3 5 3 7 9 3 5 9 7 9 2 4 2 4 7 9 2 9 7 9 6 8 6 8 6 8 6 8 2 3 6 2 3 6 9 2 3 6 9 6 7 6 7
第6行中,6只能在第1列或第3列。第2行中,6只能在第2列或第3列。第7行中,6只能在第2列或第3列。三个6必须各占一列,因此这3列中的6被完全锁定。

步骤 6:既然6在这3列中被剑鱼锁定,那么第1列、第2列、第3列的其他行就不可能再有6了——可以安全消除!

7 1 4 3 9 3 7 1 4 8 1 6 8 9 7 5 2 4 6 8 2 1 5 1 3 6 8 1 9 7 2 4 3 5 7 2 3 5 9 1 4 1 5 4 7 9 6 8 2 3 8 4 1 5 2 5 6 8 2 6 8 2 5 6 9 6 9 2 6 2 5 6 2 5 3 4 3 4 3 5 3 7 9 3 5 9 7 9 2 4 2 4 7 9 2 9 7 9 6 8 6 8 6 8 6 8 2 3 6 2 3 6 9 2 3 6 9 6 7 6 7 6 6 6 6 6
既然6在这3列中被剑鱼锁定,那么第1列、第2列、第3列的其他行就不可能再有6了——可以安全消除!

以候选数字 5 为例,检查各行的位置:

候选数 5 的位置
第 1 行C2, C5
第 4 行C2, C8
第 7 行C5, C8
其他行有 5 但超过 2 列或分布不同

分析第 1、4、7 行

  • 第 1 行:列 2、5
  • 第 4 行:列 2、8
  • 第 7 行:列 5、8

三行涉及的列:{2, 5, 8},恰好 3 列 ✓ 每行均有 2 个位置 ✓

剑鱼结构确认!

格子角色
R1C2, R1C5第 1 行剑鱼端点
R4C2, R4C8第 4 行剑鱼端点
R7C5, R7C8第 7 行剑鱼端点

消除操作

在第 2、5、8 列中,除第 1、4、7 行之外的所有格子,候选数 5 可全部删除:

  • 第 2 列:R2C2、R3C2、R5C2、R6C2、R8C2、R9C2 中删除 5
  • 第 5 列:R2C5、R3C5、R5C5、R6C5、R8C5、R9C5 中删除 5
  • 第 8 列:R2C8、R3C8、R5C8、R6C8、R8C8、R9C8 中删除 5

推理验证

无论如何填入,数字 5 在第 2 列必须由第 1 行或第 4 行提供,在第 5 列必须由第 1 行或第 7 行提供,在第 8 列必须由第 4 行或第 7 行提供。其他行在这三列中没有放 5 的机会。

不完整剑鱼示例(某行只有 1 个位置):

候选数 3 的位置
第 2 行C1, C6
第 5 行C1 (只有 1 个位置)
第 8 行C6, C9

三行涉及列:{1, 6, 9},恰好 3 列 ✓

这依然是合法的剑鱼!第 5 行只占 1 列(C1),但三行总列集合恰好是 3 列,消除规则同样适用。

消除:第 1、6、9 列中,除第 2、5、8 行以外的格子可删除候选数 3。

实用技巧

  • 从 X-Wing 思维延伸:先找每个数字在各行中的候选数数量,只有 1-2 个的行才能参与剑鱼;超过 2 个的行直接排除

  • 列优先扫描:找到可能的行后,记录它们覆盖的列集合。目标是三行的列集合并集 = 3 列。如果并集超过 3 列,就不是剑鱼

  • 三行三列对称:剑鱼同样可以从三列角度发现——三列每列最多 2 个位置,总行数恰好 3 行,消除这三行中其他列的候选数

  • 剑鱼较为罕见:相比 X-Wing,剑鱼在实际题目中较少出现,但在困难和专家级数独中是必备技法

  • 消除范围更广:X-Wing 消除 2 列(或 2 行),剑鱼消除 3 列(或 3 行),单次应用效果更显著

  • 检查消除是否有效:消除前先确认目标格确实含有候选数 N,避免无效操作

与其他技法的关系

  • 前置技法X-Wing——剑鱼是 X-Wing 从 2 扩展到 3 的版本,理解 X-Wing 后剑鱼的逻辑完全自然
  • 延伸技法水母(Jellyfish)——将相同逻辑扩展到 4 行 × 4 列,是剑鱼的四阶版本
  • 变体技法有鳍剑鱼(Finned Swordfish)——允许剑鱼结构中有少量”鳍”(额外位置),在特定条件下仍可消除

X-Wing → 剑鱼 → 水母构成一个技法族,统称为”基本鱼形”(Basic Fish)。掌握这个系列能大幅提升解题能力。

常见问题

Q:剑鱼的三行中,某行只有 1 个位置(而非 2 个)还算剑鱼吗?

A:算。剑鱼的条件是每行最多 2 个位置,最少可以是 1 个,只要三行的位置总并集恰好覆盖 3 列即可。有时候一行只有 1 个候选数位置,反而让三列的覆盖更”紧凑”,消除效果可能更好。

Q:如何在复杂盘面中快速判断是否存在剑鱼?

A:推荐建立候选数位置表:对每个数字,记录它在每行(或每列)中的位置。筛选出位置数 ≤ 2 的行,然后在这些行中寻找三行的列并集 = 3 列的组合。这个过程可以系统化进行,避免遗漏。

在爱九宫数独中练习

打开爱九宫数独 App → 学习 → 高级技法 → 剑鱼,系统会提供专项练习题。建议按 X-Wing → 剑鱼 → 水母的顺序学习,循序渐进掌握鱼形技法系列,大幅提升应对困难级数独的能力。