解題技巧

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

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

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

核心原理:
XY鏈由一系列雙值格子組成,相鄰格子之間共享一個候選數。鏈的起點和終點各有一個不被共享的候選數,如果這兩個數字相同(記為Z),那麼能同時看到鏈首和鏈尾的格子可以刪除候選數Z。原因是:沿著鏈推理,Z必定出現在鏈首或鏈尾。
XY鏈原理動畫
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鏈進行排除!先找到所有雙值格子,然後嘗試把它們連成鏈。