數獨中的摩天樓技巧
什麼是摩天樓?
摩天樓是一種只圍繞一個候選數展開的結構,由兩條不同的行或列中的兩個強連結組成。對於選定數字,每個基礎單位中恰好有兩個候選位置。每對中的一個位置構成共享的基礎連接,另外兩個位置就是端點,也稱為摩天樓的「頂部」。
兩個頂部不可能同時為假。因此,任何同時能看到這兩個端點的格子都不能包含該候選數。
如何尋找摩天樓
- 選擇一個候選數。
- 找出兩行或兩列,在其中每個單位裡該候選數恰好出現兩個位置。
- 從兩對位置中各找一個能夠互相看到的位置,組成共享的基礎連接。
- 將剩下的兩個位置作為頂部端點。
- 找出同時能看到兩個端點的格子,並刪除其中的該候選數。
這個結構可以旋轉或翻轉。兩條基礎單位不必相鄰,兩個端點也不必位於同一個宮。關鍵在於強連結邏輯以及基礎位置之間的可見關係。
為什麼可以排除候選數?
假設候選數4在兩行中各有兩個可能位置。如果第一行的一個基礎候選位置為假,那麼該行的另一個位置必須填4。透過共享的基礎關係,這會迫使第二行的對應位置成立,並使另一側的頂部為真。反過來推理也一樣。
因此,兩個頂部端點中至少有一個必須填4。任何同時能看到兩個頂部的第三格都不能再包含4。
摩天樓與 X-Wing
X-Wing 要求兩條基礎行中的候選位置精確對齊在相同的兩列。摩天樓不要求這種矩形對齊,而是透過兩個強連結和共享的基礎連接,在同時看到兩個端點的格子中產生排除。
摩天樓常見誤區
- 整個結構只能使用同一個候選數。
- 每個基礎單位中,該數字必須恰好有兩個候選位置。
- 不要把任意可見的候選對都當成強連結;它必須是該單位中該數字唯一的兩個位置。
- 只能從同時看到兩個頂部端點的格子中排除候選數。
什麼時候使用摩天樓?
在更新單數、數組和鎖定候選數之後,可以檢查摩天樓。當某個候選數在兩行或兩列中幾乎對齊,卻無法組成完整 X-Wing 時,摩天樓尤其有用。完整的候選數標記和逐個數字檢查會更容易發現兩個強連結。