技巧文檔 / 起重機
起重機
> 前置知識:[鏈的基礎](learning://chains)
高階
起重機
前置知識:鏈的基礎
描述
起重機是一種“刪候選”的單數短鏈技巧:只盯住一個數字 d。
它和雙線風箏很像,區別在於:
雙線風箏是“宮裏那段是弱鏈”,而起重機是“宮裏那段是強鏈”。
詳解

先看上圖:目標數字是 6。鏈路是 r3c7 → r2c8 → r8c8 → r8c3,紅色是要刪除的 r3c3 中的候選 6,兩端用藍色標出。
為什麼能刪?看一個很短的反證就夠了:
- 假設紅色候選 r3c3 = 6 為真
- 同一行不能有兩個 6,所以 r3c7 ≠ 6
- 在同一宮裏,6 只剩 r3c7 和 r2c8 兩個位置:既然 r3c7 不是 6,那麼 r2c8 必須是 6(宮內強鏈)
- 因為 r2c8 是 6,所以同一列裏的 r8c8 ≠ 6(弱鏈)
- 在第 8 行裏,6 只剩 r8c8 和 r8c3 兩個位置:既然 r8c8 不是 6,那麼 r8c3 必須是 6(行強鏈)
- 可 r8c3 和 r3c3 在同一列,不可能同時為 6 → 矛盾
所以 r3c3 不可能是 6,紅色候選 6 可以刪除。
例子
下面兩張圖是更多起重機例子,你可以直接對照結構參考:


如何尋找起重機?
一句話:宮內強鏈 + 行/列強鏈,用一條同行/同列的弱鏈接成 L 形 → 刪兩端共視點。
在遊戲裏你可以按這個順序找:
- 先選一個數字 d
- 找到一個宮:d 在宮裏只剩 2 個候選位置(宮內強鏈)
- 再找到一條行或列:d 在這條行/列裏也只剩 2 個候選位置(行/列強鏈)
- 看看這兩條強鏈是否能通過“同一行”或“同一列”連成 L 形(中間那段就是弱鏈)
- 剩下的兩個端點就是兩端:能同時看見兩端的位置,就是可刪的候選 d