grid_on

Sudoku Clean

技巧文檔 / X鏈

X鏈

> 前置知識:[鏈的基礎](learning://chains)

高階

X鏈

前置知識:鏈的基礎


1. 描述

X鏈(也常寫作 X-Chain)是一種“只盯一個數字 d”的鏈技巧。

你可以把它理解成:把數字 d 在棋盤上的候選位置,用 強鏈弱鏈 串起來,形成一條“如果…那麼…”的推理路線。

它最常見的用途是刪數:

  • 鏈的兩端都是同一個數字 d
  • 如果某個格子裏的 d 能同時看見鏈的兩端
    ⇒ 那這個格子裏的 d 往往就可以刪除

2. 詳解

X鏈 詳解示例

先看上圖:我們只討論候選數字 3

圖中從藍色的 r1c5 開始,沿着強鏈 / 弱鏈交替傳導,最終走到另一個藍色端點 r8c3
紅色格子 r8c5 中的候選 3 是本次要刪除的目標。

為什麼 r8c5 的 3 能刪?我們用一個很短的反證就夠了:

  1. 假設紅色候選 r8c5 = 3 為真
  2. 因為同一列不能有兩個 3,所以 r1c5 不能是 3(起點變成“假”)
  3. 由於這條鏈是強弱交替的:
    • “假”會沿着強鏈推到“真”
    • “真”會沿着弱鏈推到“假”
      一步步傳下去,最後會推出:r8c3 必須是 3(終點變成“真”)
  4. 但 r8c3 和 r8c5 在同一行:
    如果 r8c5 是 3,那麼 r8c3 就不可能是 3 —— 矛盾

所以假設不成立:r8c5 不能是 3,候選數字 3 可以刪除。


3. 例子

下面兩張圖是其它 X鏈 的例子。你可以先不急着逐段推理,只要先學會“看形狀”:

  • 只盯一個數字 d
  • 找到一條強弱交替的鏈,把兩個端點連起來
  • 再找一個能同時看見兩端點的紅色候選作為刪數點

X鏈 示例 A

X鏈 示例 B


4. 如何尋找 X鏈?

一句話:先選一個數字 d,再用“共軛對(強鏈)”把它串成一條強弱交替的路線,最後在能同時看見鏈兩端的位置刪 d。

在遊戲裏你可以按這個順序找:

  1. 先選一個數字 d(例如 3)
  2. 在行/列/宮裏找 d 只剩兩個候選位置的地方(這兩個位置之間就是強鏈)
  3. 用“同一行/列/宮能互相看見”的關係把這些強鏈段落接起來(弱鏈),形成一條強弱交替的鏈
  4. 找一個格子,它的候選 d 能同時看見鏈的兩個端點:這個候選往往就是紅色刪數點