解題技巧

【鏈式推理①】基礎篇:強鏈接與弱鏈接

2025-06-06 · 12 分鐘閱讀
知識庫 / 技巧目錄 / 鏈式推理基礎

鏈式推理(Chain)是數獨高級技巧的核心理論框架。幾乎所有的高級排除技巧——從簡單的X-Wing到複雜的AICs——都可以用鏈式推理來統一理解和描述。本文將深入探討鏈式推理最基礎也最重要的兩個概念:強鏈接弱鏈接

鏈式推理系列 (1/3)
① 基礎篇(當前) ② 構建篇 → ③ 應用篇
建議按順序閱讀,本系列共3篇文章
鏈式推理概念圖
鏈式推理核心概念:強鏈接保證「恰好一真一假」,弱鏈接保證「至多一個為真」

什麼是鏈?

在數獨中,(Chain)是候選數之間通過某種邏輯關係形成的連接序列。想像一下:如果我們能在候選數之間建立「如果A為真,則B為真/假」這樣的推理關係,並將這些關係串聯起來,就形成了鏈。

鏈的本質是邏輯傳遞:從一個起點出發,通過一系列的邏輯推斷,得出某個結論。這個結論通常用於:

  • 確定某個候選數必須為真(確定填入值)
  • 確定某個候選數必須為假(排除候選數)

要理解鏈,我們必須首先理解構成鏈的基本單元:鏈接(Link)。鏈接描述的是兩個候選數之間的邏輯關係,根據關係的強度分為強鏈接和弱鏈接。

強鏈接(Strong Link)

強鏈接的定義:
兩個候選數A和B之間存在強鏈接,當且僅當:A和B恰好一個為真,一個為假
換言之,如果A為假則B必為真,如果A為真則B必為假(互斥且完備)。
記法:A = B 或 A ═══ B(雙線表示)
強鏈接類型示意圖
強鏈接的三種常見來源:雙值格、共軛對、組合強鏈接

強鏈接的來源

強鏈接可以來自以下幾種情況:

1. 雙值格內的強鏈接(Bi-value Cell)

當一個格子只有兩個候選數時,這兩個候選數之間存在強鏈接。

格子R3C5只有候選數{4, 7}。那麼R3C5的候選數4和候選數7之間存在強鏈接。
邏輯:如果4為假,該格子必須是7;如果7為假,該格子必須是4。

雙值格是最常見的強鏈接來源,因為它直觀明了:格子要麼填這個數,要麼填那個數。

2. 共軛對形成的強鏈接(Conjugate Pair)

當某個數字在一個單元(行、列或宮)內只出現在兩個位置時,這兩個位置的該候選數之間存在強鏈接。這種關係稱為共軛對

在第5行,候選數3只出現在R5C2和R5C8兩個位置。那麼「R5C2的3」和「R5C8的3」之間存在強鏈接。
邏輯:第5行必須有一個3。如果R5C2不是3,R5C8必須是3;反之亦然。
關鍵理解:
共軛對強鏈接的兩端是同一個數字在不同位置,而不是同一位置的不同數字。這與雙值格內的強鏈接有本質區別。

3. 分組強鏈接(Grouped Strong Link)

更廣泛地說,當一組候選數與另一組候選數之間滿足「恰好一組為真」的關係時,就存在強鏈接。這在高級技巧中會涉及,本系列第三篇將詳細討論。

強鏈接的核心性質

重要性質:
  • 恰好一真:強鏈接的兩端恰好一個為真,一個為假
  • 假傳真:如果一端為假,另一端必為真
  • 真傳假:如果一端為真,另一端必為假

弱鏈接(Weak Link)

弱鏈接的定義:
兩個候選數A和B之間存在弱鏈接,當且僅當:如果A為真,則B必定為假
換言之,A和B至多有一個為真(可能都為假,但不可能都為真)。
記法:A - B 或 A ─── B(單線表示)
弱鏈接類型示意圖
弱鏈接的兩種常見來源:同格不同數、同單元同數

弱鏈接的來源

弱鏈接同樣有多種來源:

1. 同一格子內不同候選數之間的弱鏈接

在同一個格子內,任意兩個不同的候選數之間都存在弱鏈接。

格子R2C4有候選數{1, 5, 8}。那麼這個格子的候選數1和候選數5之間存在弱鏈接。
邏輯:一個格子只能填一個數。如果填了1,就不可能是5。

2. 同單元內相同候選數之間的弱鏈接

在同一個單元(行、列或宮)內,同一個數字的所有候選位置之間兩兩存在弱鏈接。

在宮3中,候選數6出現在R1C7、R2C8、R3C9三個位置。這三個位置的候選數6之間兩兩存在弱鏈接。
邏輯:一個宮內同一數字只能出現一次。如果R1C7是6,則R2C8和R3C9都不能是6。
弱鏈接無處不在:
相比強鏈接,弱鏈接更加普遍。實際上,數獨的基本規則(行、列、宮內數字不重複;一格只填一數)本質上就是定義了大量的弱鏈接關係。

弱鏈接的核心性質

重要性質:
  • 至多一真:弱鏈接的兩端至多有一個為真
  • 真傳假:如果一端為真,另一端必為假
  • 可能共假:兩端可以同時為假(這點與強鏈接不同!)

強鏈接與弱鏈接的對比

理解強鏈接和弱鏈接的區別是掌握鏈式推理的關鍵。讓我們通過一個對比表格來總結:

特性 強鏈接 (Strong Link) 弱鏈接 (Weak Link)
核心性質 恰好一真一假 至多一個為真
邏輯傳遞 假 → 真,真 → 假 真 → 假
可否同真 ✗ 不可以 ✗ 不可以
可否同假 ✗ 不可以 ✓ 可以
記號 ═══(雙線)或 = ───(單線)或 -
常見來源 雙值格、共軛對 同格異數、同單元同數

強鏈接的特殊情況:同時也是弱鏈接

這裡有一個重要的概念需要理解:強鏈接往往同時也是弱鏈接

雙值格R3C5只有候選數{4, 7}。
強鏈接角度:如果4為假,7必為真 → 存在強鏈接
弱鏈接角度:如果4為真,7必為假 → 也存在弱鏈接
結論:這兩個候選數之間既是強鏈接也是弱鏈接!
第5行候選數3只出現在R5C2和R5C8兩個位置(共軛對)。
強鏈接角度:如果R5C2的3為假,R5C8的3必為真 → 存在強鏈接
弱鏈接角度:如果R5C2的3為真,R5C8的3必為假(同行不能有兩個3)→ 也存在弱鏈接
結論:共軛對也同時滿足強弱兩種鏈接!
核心理解:
當兩個候選數之間恰好滿足「一真一假」的關係(即不可能同真,也不可能同假)時,它們之間既是強鏈接也是弱鏈接。這種關係是最「強」的鏈接關係,在鏈的構建中非常有用。

記憶口訣:雙值格和共軛對,強弱兩相隨。

「看到」的概念

在鏈式推理中,經常會用到「看到」(see)這個概念。理解「看到」對於識別鏈接關係至關重要。

「看到」的定義:
候選數A「看到」候選數B,意味著A和B之間存在弱鏈接
如果A為真,則B必為假——即A能「排除」B。

「看到」關係存在於:

  • 同一格子的不同候選數之間
  • 同一行中相同候選數之間
  • 同一列中相同候選數之間
  • 同一宮中相同候選數之間

這個概念在後續討論鏈的應用時會頻繁使用,比如「兩端能同時看到的候選數可以被排除」。

為什麼區分強弱鏈接如此重要?

強鏈接和弱鏈接的區分是鏈式推理的基石。它們的區別決定了:

1 推理方向不同:
強鏈接允許從「假」推出「真」;弱鏈接允許從「真」推出「假」。鏈式推理正是利用這兩種不同的傳遞方向來構建複雜的邏輯推導。
2 鏈的有效性判定:
在構建鏈時,必須正確識別每一步是強鏈接還是弱鏈接,才能保證推理的正確性。錯誤地把弱鏈接當作強鏈接使用,會導致錯誤的結論。
3 不同技巧的統一理解:
許多看似不同的技巧(如X-Wing、Skyscraper、XY-Wing等)本質上都是特定模式的鏈。理解了強弱鏈接,就能用統一的框架理解這些技巧。

下一步

本文介紹了鏈式推理最基礎的兩個概念:強鏈接和弱鏈接。理解了這兩個概念後,我們就可以開始學習如何將它們組合起來構建完整的鏈。

下一篇文章中,我們將討論:

  • 如何交替使用強鏈接和弱鏈接構建鏈
  • 鏈的真假狀態傳遞規則
  • 鏈式推理的「著色」思想
  • 從鏈的兩端得出結論的方法
相關閱讀: