Sudoku Clean logo

Sudoku Clean

技巧文檔 / ALS-XZ

極難技巧

ALS-XZ

建議先熟悉:標註候選數 · 數對與數組

ALS-XZ 的名稱看起來很抽象,但核心只有一句話:

兩個「只差一步就會鎖定」的候選數組,透過一個受限制的公共候選 X 相連,從而保證另一個公共候選 Z 至少會在其中一組出現。

要真正理解這句話,我們需要依次弄清楚 ALS、RCC、X 和 Z 分別是甚麼。


1. 甚麼是 ALS?

ALS 是 Almost Locked Set 的縮寫,中文常稱為「近鎖定集」。

一組候選格滿足以下兩個條件時,就是一個 ALS:

  1. 這組格子都在同一行、列或宮內,因此彼此可見;
  2. 如果共有 N 個格子,它們的候選數合起來恰好只有 N+1 種數字

例如,兩格中的候選分別是 1、22、3。這裡有 2 個格子,候選並集是 1、2、3,共 3 種數字,所以它們構成一個 ALS。

ALS 從近鎖定集變為鎖定集

普通鎖定集是 N 個格子只有 N 種候選數字。這些格子必須由這 N 個數字填滿,因此每個數字都必須在其中出現一次。

ALS 比鎖定集多出一種候選。只要從整組排除任意一種數字,它就會變成 N 格 N 數的鎖定集,剩下的每個數字都必須出現。

可以把 ALS 記成:N 個互相可見的格子裡有 N+1 種候選;少掉任意一種,就會變成鎖定集。


2. 甚麼是 RCC?

現在取兩個互不重疊的 ALS,稱為 ALS AALS B

如果一個候選數字同時存在於 A、B 中,它就是兩組的公共候選。但公共候選不一定是 RCC。

RCC 是 Restricted Common Candidate 的縮寫,意思是「受限公共候選」。公共候選 X 還必須滿足:

A 中每一個 X 的位置,都能看見 B 中每一個 X 的位置。

最常見的情況是:A、B 中所有 X 都落在同一行、同一列或同一宮。因為同一個區域不能重複出現 X,所以 X 不可能同時在 A、B 中成立。

兩組 ALS 透過 RCC X 相連

因此:

  • X 最多只會在一組 ALS 中出現;
  • 至少有一組 ALS 最終不會填 X;
  • 但 X 也可能兩組都不填,因此單 RCC 並不能保證 X 自己一定出現。

沒有填 X 的那組 ALS 會少掉一種候選,隨即變成鎖定集;組內剩下的數字全部都必須出現。


3. ALS-XZ 是怎樣形成的?

一個標準的單 RCC ALS-XZ 包含:

  1. 兩個互不重疊的近鎖定集 ALS A 和 ALS B;
  2. 兩組至少有兩個公共候選,記作 X 和 Z;
  3. X 是 RCC:X 不可能同時在 A、B 中成立;
  4. Z 是另一個公共候選;
  5. 某個外部候選 Z 能看見 Z 在 A、B 中的全部可能位置。

在遊戲的提示圖中:

  • 藍色格子表示 ALS A;
  • 黃色格子表示 ALS B;
  • 藍色候選數表示 RCC X;
  • 綠色候選數表示被證明至少會出現的 Z;
  • 紅色候選數表示可以刪除的候選。

ALS-XZ 中 Z 的保證位置與刪數


4. 為甚麼一定能刪除 Z?

X 在 ALS A 中成立

ALS B 不能再填 X。B 去掉 X 後變成鎖定集,因此 Z 必須在 B 中出現。

X 在 ALS B 中成立

同理,ALS A 變成鎖定集,因此 Z 必須在 A 中出現。

A、B 都不填 X

這時 A、B 都會變成鎖定集,Z 會在兩組中分別出現,結論只會更強。

所以無論 X 最終在哪裡:

公共候選 Z 至少會在 ALS A 或 ALS B 中出現一次。

如果一個外部格中的候選 Z,能同時看見 Z 在 A、B 中的所有可能位置,那麼 Z 無論落在哪一組,都會與這個外部候選衝突。因此可以刪除該候選 Z。


5. 雙 RCC ALS-XZ

有時 ALS A 與 ALS B 有兩個公共候選 X、Y,而且兩者都是 RCC。這稱為雙 RCC,或 Doubly Linked ALS-XZ

  • X 不能同時在 A、B 中成立,所以至少有一組不填 X;
  • Y 也不能同時在 A、B 中成立,所以至少有一組不填 Y。

如果同一組同時不填 X 和 Y,它會從 N+1 種候選一下少掉兩種,只剩 N−1 種數字去填 N 個格子,這是不可能的。

因此 A、B 必須各排除一個 RCC,兩組都恰好少掉一種候選,並分別變成鎖定集。

下圖畫出其中一種可能:A 不填 X、B 不填 Y,於是 Y 必須在 A 中出現,X 必須在 B 中出現。實際盤面也可能完全相反,但結論相同。

雙 RCC 必須分居兩組

這會得到更強的結論:

  1. X、Y 必須各在 A、B 的其中一組出現,而且一邊一個;
  2. A 中其他非 RCC 候選都被鎖定在 A;
  3. B 中其他非 RCC 候選都被鎖定在 B。

藍色與綠色標記表示這些必定出現的位置。紅色候選只要能看見同數字的全部保證位置,就可以刪除。


6. 常見誤區

公共候選就是 RCC?

不是。A 中的每一個 X 都必須看見 B 中的每一個 X。

看見一部分 Z 就可以刪除?

不可以。刪數候選必須看見 Z 在 A、B 中的全部可能位置

單 RCC 可以刪除 X 嗎?

通常不可以。單 RCC 只證明 X 不能同時在兩組出現,沒有證明 X 至少出現一次。ALS-XZ 刪除的是另一個被保證出現的公共候選 Z。

兩組 ALS 可以共用格子嗎?

不可以。這裡的 ALS A、B 必須互不重疊。


7. 實戰檢查順序

  1. 先看格子:藍色 ALS A、黃色 ALS B 是否各自滿足 N 格 N+1 數;
  2. 再看藍色候選 X:A 中每個 X 是否都能看見 B 中每個 X;
  3. 找公共候選 Z:Z 是否同時存在於 A、B;
  4. 看綠色位置:這些是否為 Z 在兩組中的全部可能位置;
  5. 最後看紅色候選:紅色格是否能看見同數字的全部綠色位置。

如果這五步都成立,刪數就是由兩個 ALS 的鎖定關係共同保證的。