解題技巧

XY鏈技巧詳解:雙值格子的鏈式推理

2025-06-05 · 10 分鐘閱讀
知識庫 / 技巧目錄 / XY-Chain

XY鏈(英文称 XY-Chain)是數獨高級技巧中一种強大的鏈式推理方法。它是XY翼的擴展形式,通過多個雙值格子(只有兩個候選數的格子)形成的鏈式结构进行候選數排除。

核心原理:
XY鏈由一系列雙值格子组成,相邻格子之间共享一個候選數。鏈的起点和终点各有一個不被共享的候選數,如果這兩個数字相同(记為Z),那么能同时看到鏈首和鏈尾的格子可以删除候選數Z。原因是:沿着鏈推理,Z必定出现在鏈首或鏈尾。
XY-Chain 原理动画
XY鏈原理示意圖:鏈首{Z,A}和鏈尾{C,Z}共享候選數Z,Z必在鏈首或鏈尾,公共可见区可删除Z

在閱讀本文前,建議先了解數獨行列宮的命名規則數對法XY翼的基本概念。

XY鏈的结构

XY鏈包含以下关键元素:

  • 鏈节点:每個节点都是一個雙值格子{A,B}
  • 鏈连接:相邻节点必须能互相"看到"(同行、列或宫),且共享一個候選數
  • 鏈首和鏈尾:各有一個不与相邻节点共享的候選數
  • 排除条件:鏈首和鏈尾的非共享候選數相同时,可进行排除

鏈的表示形式:A(x,y) → B(y,z) → C(z,w) → ... 其中括号内是候選數,箭头表示鏈的连接方向,相邻节点共享一個数字(如y、z)。

為什么XY鏈有效?

1 鏈式传递:假设鏈為 A{X,Y} → B{Y,Z} → C{Z,W},如果A=X,则B必须=Z(因為B不能=Y),则C必须=W(因為C不能=Z)。
2 兩种可能:鏈首有兩個候選數,假设為{P,Q},其中Q与下一個节点共享。如果鏈首=P,推理结束;如果鏈首=Q,则沿鏈传递到鏈尾。
3 关键结论:如果鏈首的非共享数P等於鏈尾的非共享数,那么P必定出现在鏈首或鏈尾之一。
4 排除目标:能同时看到鏈首和鏈尾的格子不能包含P(因為P一定在鏈首或鏈尾)。

實例一:4节点XY鏈

我们来看一個簡單的4节点XY鏈示例。

XY鏈示例1
图1:XY鏈 R2C2{3,7} → R2C6{3,5} → R9C6{2,5} → R9C7{2,7},可從R2C7删除候選數7
在计算器中打开此例

分析过程

1 识别鏈节点:
  • R2C2:候選數 {3, 7}(鏈首)
  • R2C6:候選數 {3, 5}
  • R9C6:候選數 {2, 5}
  • R9C7:候選數 {2, 7}(鏈尾)
2 验证鏈连接:
  • R2C2 与 R2C6 在同一行(第2行),共享候選數 3
  • R2C6 与 R9C6 在同一列(第6列),共享候選數 5
  • R9C6 与 R9C7 在同一行(第9行),共享候選數 2
3 確定排除数字:
  • 鏈首R2C2{3,7}的非共享数 = 7(3被R2C6共享)
  • 鏈尾R9C7{2,7}的非共享数 = 7(2被R9C6共享)
  • 兩者相同!Z = 7
4 推理过程:
  • 如果R2C2=7 → 7在鏈首
  • 如果R2C2=3 → R2C6不能是3 → R2C6=5 → R9C6不能是5 → R9C6=2 → R9C7不能是2 → R9C7=7 → 7在鏈尾
  • 無論哪种情況,7必定在R2C2或R9C7中
5 找到删除目标:R2C7 能同时看到鏈首R2C2(同行)和鏈尾R9C7(同列)。
结论:
XY鏈:R2C2{3,7} → R2C6{3,5} → R9C6{2,5} → R9C7{2,7}
可從 R2C7 删除候選數 7

實例二:10节点长鏈

XY鏈可以很长,下面是一個10节点的例子,展示鏈式推理的強大能力。

XY鏈示例2
图2:XY鏈 R2C5{1,5} → R2C1{1,5} → R1C1{5,8} → R1C7{7,8} → R3C7{7,8} → R3C2{4,8} → R7C2{4,8} → R8C1{4,8} → R8C7{4,9} → R8C3{5,9},可從R8C5删除候選數5
在计算器中打开此例

分析过程

1 识别鏈节点(10個):
  • R2C5:{1, 5}(鏈首)
  • R2C1:{1, 5}
  • R1C1:{5, 8}
  • R1C7:{7, 8}
  • R3C7:{7, 8}
  • R3C2:{4, 8}
  • R7C2:{4, 8}
  • R8C1:{4, 8}
  • R8C7:{4, 9}
  • R8C3:{5, 9}(鏈尾)
2 验证鏈连接:
  • R2C5 → R2C1:同行,共享 1(或5)
  • R2C1 → R1C1:同列,共享 5
  • R1C1 → R1C7:同行,共享 8
  • R1C7 → R3C7:同列,共享 7(或8)
  • R3C7 → R3C2:同行,共享 8
  • R3C2 → R7C2:同列,共享 4(或8)
  • R7C2 → R8C1:同宫,共享 8
  • R8C1 → R8C7:同行,共享 4
  • R8C7 → R8C3:同行,共享 9
3 確定排除数字:
  • 鏈首R2C5{1,5}的非共享数 = 5(1被R2C1共享)
  • 鏈尾R8C3{5,9}的非共享数 = 5(9被R8C7共享)
  • 兩者相同!Z = 5
4 推理结论: 無論鏈首R2C5是1還是5,候選數5必定出现在鏈首R2C5或鏈尾R8C3中
5 找到删除目标:R8C5 能同时看到鏈首R2C5(同列)和鏈尾R8C3(同行)。
结论:
XY鏈(10节点):R2C5 → R2C1 → R1C1 → R1C7 → R3C7 → R3C2 → R7C2 → R8C1 → R8C7 → R8C3
可從 R8C5 删除候選數 5

如何發現XY鏈?

寻找XY鏈需要系統化的方法:

1 标记雙值格子:首先找出所有只有兩個候選數的格子。
2 选择起点:选择一個雙值格子作為鏈首,记录它的兩個候選數{P,Q}。
3 延伸鏈条:找能"看到"當前节点且与之共享一個候選數的雙值格子作為下一個节点。
4 检查终止条件:每延伸一步,检查鏈尾的非共享数是否等於鏈首的非共享数P。
5 找删除目标:找能同时看到鏈首和鏈尾且包含P的格子。
注意事项:
  • 鏈中每個节点必须是雙值格子
  • 相邻节点必须能互相看到(同行、列或宫)
  • 相邻节点必须共享一個候選數
  • 排除条件:鏈首和鏈尾的非共享候選數相同
  • XY翼是XY鏈的特例(长度為3的鏈)

XY鏈与XY翼的關係

XY翼可以视為长度為3的XY鏈:

  • XY翼:軸心{X,Y} → 翼1{X,Z} → 翼2{Y,Z}... 等等,這实际上不是标准鏈形式
  • 实际關係:XY翼的结构是"Y"形,而XY鏈是线性的
  • 共同点:都利用雙值格子进行推理排除
  • 区别:XY鏈要求鏈式连接,XY翼要求軸心同时看到兩翼

技巧總結

XY鏈的應用要点:

  • 节点要求:所有节点都是雙值格子
  • 连接要求:相邻节点能互相看到且共享一個候選數
  • 排除条件:鏈首和鏈尾的非共享候選數相同
  • 删除目标:能同时看到鏈首和鏈尾的格子中的该候選數
  • 鏈长度:理论上可以任意长,越长越难發現但排除能力越強
立即練習:
開始一局數獨遊戲,尝试使用XY鏈进行排除!先找到所有雙值格子,然後尝试把它们连成鏈。