剑鱼
Swordfish
概要:剑鱼(Swordfish)是 X-Wing 从 2×2 到 3×3 的自然扩展。若某候选数在三行中每行最多出现两个位置,且这些位置集中在恰好三列中,则该候选数在整个三列的其余行中可以全部消除。反之对三列也同样成立。
什么是剑鱼?
剑鱼(Swordfish)是 X-Wing 的三阶扩展,是数独中最经典的高级技法之一。
先回顾 X-Wing:若某候选数在两行中各恰好出现 2 次,且这 4 个位置落在同两列中,则该候选数在这两列的其他行可以全部消除——因为这两行的候选数”占据”了这两列的所有合法位置。
剑鱼将这个逻辑扩展到三行:
若某候选数在三行中每行最多出现 2 个位置(至少一行恰好 2 个),且这些位置加在一起落在恰好三列中,则该候选数在这三列中除这三行以外的所有格子,都可以被消除。
为什么有效?
这三行必须在这三列中分配该候选数的位置。无论具体怎样分配,每一列中这三行之外的格子都不需要、也不能再承担该候选数——否则该候选数在某列中会出现多次,违反数独规则。
注意:每行的候选数位置可以是 1 个或 2 个(不要求每行都是 2 个),但三行的位置总并集恰好是三列。
解题步骤
-
选定候选数字 N:扫描盘面,寻找在各行中出现 1-2 次的候选数
-
找三行:找三行,使得候选数 N 在每行中最多出现 2 次,且三行所有位置合计覆盖恰好 3 列
-
验证:
- 三行中 N 的所有列坐标集合大小 = 3
- 每行至少有 1 个位置,至少一行有 2 个位置
-
消除:在这三列中,将不属于这三行的所有格子中的候选数 N 删除
-
对称检查:同样的逻辑对列方向也成立(三列 + 三行方向的消除)
示例详解
步骤 1:棋盘总览
步骤 2:让我们观察数字6的候选数分布。先看第2行、第6行和第7行——在这三行中,6的候选数出现在哪些列?
步骤 3:数字6在这3行中,只出现在第1列、第2列和第3列!第2行在第2、3列;第6行在第1、3列;第7行在第2、3列。
步骤 4:3行 × 3列 = 剑鱼图形!数字6被锁定在这6个交叉点之内。
步骤 5:第6行中,6只能在第1列或第3列。第2行中,6只能在第2列或第3列。第7行中,6只能在第2列或第3列。三个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 → 剑鱼 → 水母的顺序学习,循序渐进掌握鱼形技法系列,大幅提升应对困难级数独的能力。