1. 程式人生 > >數獨高階技巧入門之二:簡單的單數鏈結構——雙強鏈

數獨高階技巧入門之二:簡單的單數鏈結構——雙強鏈

著作權 images div urb apt 藍色 刪除 作者 技巧

?如果在數獨盤勢中,我們找到關於某個候選數的兩條強鏈,且這兩條強鏈的一側在同一單元(行、列、宮)內,稱為base,另一側有共同作用格,稱為cover。根據前篇《鏈及其簡單應用》中的定義,base側兩端點之間不是矛盾關系就是上反對關系,它們之間必然可以是弱鏈。很明顯這是個典型的強弱強鏈,其兩端互為強關系,必有一真,據此可以刪去cover側兩端點共同作用格內的候選數。我們將這種簡單的單數鏈結構稱之為雙強鏈,雙強鏈結構主要包括摩天樓(Skyscraper)、雙線風箏(2-String Kite)、多寶魚(Turbot Fish)、空矩形(Empty Rectangle)。

摩天樓(Skyscraper)

技術分享圖片 圖1-摩天樓 Skyscraper

?如圖1,當數字A分別在某兩行、列只能出現在兩個可能的位置(這樣就保證了數字A在該行、列的兩個候選數構成強鏈),且其中一側處於同一列、行(base)時,則可刪去另一側(cover)兩個端點共同作用格(黃色區域)內的數字A。來看下圖的實例。

技術分享圖片 圖2-SK01

在圖2中,數字1在C6、C9列只能出現在兩個位置,且R5C6和R5C9同處於R5行(base),顯然這是個典型的強弱強鏈(R1C6==R5C6 — R5C9==R3C9),cover側R1C6和R3C9之間為強關系,必有一真,可以刪去它們共同作用格內的數字1(紅色)。

上例是數字A在兩列中只出現於兩個位置的摩天樓結構,我們再看一個位於兩行的摩天樓。圖3中數字4在R2、R8中只出現在兩個位置,R2C1和R8C1同處於C1列(base),可刪去cover側R2C5與R8C4共同作用格內的候選數4(紅色)。

技術分享圖片 圖3-SK02

雙線風箏(2-String Kite)

技術分享圖片 圖4-雙線風箏 Two Strings Kite

當數字A在一行、一列均只能出現在2個可能位置(保證是強鏈),且該行和列的一個端點同處於同一宮(base),則可以刪除另兩個端點(cover)的共同作用格(黃色區域)內的候選數A。來看實例:

技術分享圖片 圖5-2SK01

圖5中R8和C7中的5只能出現在兩個位置,且R8C9的5和C7R9的5同處於B9宮(base),我們可以形象的把同處一宮的部分看作風箏的軀幹,另一側的兩端點(cover)看作風箏的兩翼,顯然風箏的兩翼R8C4和R2C7之間為強關系(R8C4==R8C9 — R9C7==R2C7),可刪去它們共同作用格內的候選數5(紅色)。

再來看一個例子,圖中R6、C2的9構成2-String Kite結構,B4宮中R6C1與C2R4的9為base,可刪去cover側R6C6、C2R7共同作用格內的候選數9(紅色)。

技術分享圖片 圖6-2SK02

多寶魚(Turbot Fish)

技術分享圖片 圖7-多寶魚 Turbot Fish

摩天樓、雙線風箏結構分別是數字A在某兩行(列)或是某行和某列只出現在兩個位置的情況,而多寶魚結構則是數字A在一行(列)和一宮中只能出現在2個可能的位置,且行(列)的一個端點和宮的一個端點位於同一行(列)(base),則可以刪除另兩兩個端點(cover)共同作用格的候選數A。

技術分享圖片 圖8-TF01

?圖8中,C1列和B8宮中的6均只能出現在兩個位置,且C1R9和C6R9同處於R9行(base),顯然另一側(cover)兩端點R6C1 與R7C4之間為強關系,可刪去其共同作用格(紅色)內的6。圖9的例子大家可自行推導。

技術分享圖片 圖9-TF02

空矩形(Empty Rectangle)

技術分享圖片 圖10-空矩形 Empty Rectangle

?空矩形實際上是多寶魚結構的延伸。如果數字A在某宮(圖10中的B9、B7)中的橙色矩形區域(這是空矩形得名的由來)不能存在,可以直觀的看到,它只能出現在該宮的藍色區域,且必然是一行一列的交叉。如果在藍色區域的行和列中,A均只出現在一個位置,此時若在該宮之外存在某行、列數字A的強鏈,且其一端點與宮中的數字A的一端點同處於一行(列),顯然這是個典型的多寶魚結構,可相應刪去cover側共同作用格的候選數。但是藍色區域行、列內的數字A不只1個時,該怎麽辦?

對強弱關系掌握比較好的朋友可能已經想到了解決方法——將分處於行、列中的候選數打包起來分成兩組(group),用整體思維來解決這種情況,如下圖:

技術分享圖片 圖11-Group

我們將藍色區域內base側的A(紅框內)打包為一組,將其余的A(粉框內)打包為另一組,由於該宮其它位置不能出現A,顯然這兩組A之間為矛盾關系,可以構成強鏈。而紅框內的三個A則和base側的另一個A構成弱關系,這樣就形成了經典的強弱強鏈,可刪去黃色區域內的候選數A。

提供兩個例子供大家自行推導揣摩。

技術分享圖片 圖12-ER01

?圖13中的橙色區域依然是空矩形。

技術分享圖片 圖13-ER02

作者:零時四分_719b
鏈接:https://www.jianshu.com/p/8a37b018892f
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並註明出處。

數獨高階技巧入門之二:簡單的單數鏈結構——雙強鏈