基本魚形

基本魚形

中級

什麼是數獨中的魚形圖案?

魚形圖案是一類針對單一數字的技巧,利用某個數字的候選數在行與列之間的排列方式。每種魚形圖案的原理都相同:你找出一組行(或列),其中某個數字的候選數被限制在有限數量的列(或行)中,然後排除其他位置的候選數。每種魚形圖案一次只針對一個數字。你觀察單一數字在整個棋盤上的分布。四種基本魚形共用同一套底層演算法,只是規模不同。

核心原理:行與列上的鴿巢邏輯

對於單一數字,如果你能找到N行,其中該數字的候選數被限制在不超過N列中,那麼這些列只能從所選的行中獲得該數字。如果聯集少於N列,這些行本身就已包含矛盾,因此有效的魚形實際上恰好使用N個覆蓋列。這N行中的每一行都必須恰好放置該數字一次。每行中的該數字必須落入某個覆蓋列。由於有N行和N個可用的覆蓋列,覆蓋列已被基礎行完全佔用。任何位於基礎行之外但在覆蓋列之內的該數字候選數都可以被刪除。同樣的邏輯反過來也成立,即以列為基準、以行為覆蓋。掃描時應兩個方向都檢查。

X翼:2x2魚形圖案

X翼使用N=2:兩行對應到兩列。當恰好有兩行都在相同的兩列中包含某個數字作為候選數時,就形成了該數字的X翼。這四個儲存格構成一個矩形。可以從這兩列的所有其他儲存格中排除該數字。同樣的圖案也適用於以列為基礎的情況。X翼被歸類為難度第4級(中等)。

劍魚:3x3魚形圖案

劍魚將魚形邏輯擴展到N=3:三行對應到三列。並非每一行都需要在全部三列中都有候選數。要求只是所有候選列的聯集恰好為三列。劍魚被評為第4級(中等),與X翼相同。底層邏輯完全相同。

水母:4x4魚形圖案

水母使用N=4:四行映射到四列。單獨的行可能只在四列中的兩列、三列或四列中有候選數。水母被歸類為第7級(非常困難)。它出現得並不頻繁,因為四行恰好對齊到四列這種特定情形並不常見。從9行中選4行有126種方式,因此系統性的手工搜尋需要耐心。

史奎姆巴格:5x5魚形結構

史奎姆巴格使用N=5:五行映射到五列。評級為第9級(大師),在實際中極為罕見。一個史奎姆巴格在未被5魚使用的行和列中有一個互補的水母。由於互補的水母更小,當兩種解釋都可用時,大多數解題者和許多解題引擎會先報告水母。這使得史奎姆巴格作為理論上的延伸比作為實際手工解題目標更有用。這種互補原理可以進一步延伸:6魚互補一個劍魚,7魚互補一個X翼,8魚互補一個隱藏單數。N=5是命名基礎魚形的實際最大值。

如何在謎題中尋找魚形結構

第1步:選擇一個仍有多個未解位置的數字。第2步:按行映射候選位置。對於你選擇的數字,列出每一行中它出現在哪些列。只有2或3個位置的行最有希望。第3步:尋找列重疊。檢查N行的任意組合是否有候選數恰好跨越N列。第4步:驗證覆蓋列中是否存在可排除項。第5步:對基於列的魚形重複上述步驟。專注於那些有多行恰好只有兩個候選位置的數字。只有兩個候選數的行是魚形結構的構建基礎。

魚形結構的難度遞進

X翼:N=2,第4級,中等劍魚:N=3,第4級,中等水母:N=4,第7級,非常困難史奎姆巴格:N=5,第9級,大師從劍魚(第4級)到水母(第7級)的跳躍反映了人類解題者難度上的顯著增加。

與高級魚形變體的關係

基礎魚形是「無鰭」或「標準」魚形。高級變體包括:帶鰭魚形:在預期列之外存在一個額外候選數(「鰭」)。所有尺寸的帶鰭變體都存在於第7-9級。刺身魚形:一種帶鰭魚形,若移除鰭則會留下一個隱藏單數而不是魚形。第7-9級。弗蘭肯魚形:區塊與行和列一起作為定義宮。第10-11級。變異魚形:任何宮的組合都可以作為基礎集和覆蓋集。最一般的形式。核心原理——N個宮將某個數字限制在N個交叉宮中——在所有變體中保持不變。

總結

基本魚形家族——X翼、劍魚、水母和史奎姆巴格——建立在同一個原理之上:N行將某個數字限制在N列中,意味著可以在這些列中進行排除。這四種技巧從容易上手的X翼到罕見的史奎姆巴格,構成了帶鰭魚、刺身魚和弗蘭肯魚的基礎。所有魚形模式都是同一技巧在不同規模下的體現。如果你明白X翼為何成立,你就明白史奎姆巴格為何成立。