|
鏈(Chain)是數(shù)獨(dú)高階技巧的核心,所有數(shù)獨(dú)盤勢(shì)都可以通過各種或簡(jiǎn)單或復(fù)雜的鏈來解出答案。鏈的本質(zhì)是命題之間的關(guān)系,在解數(shù)獨(dú)時(shí),每個(gè)填數(shù)的步驟都可表現(xiàn)為在『A格中填入1』、『B格中填入2』這樣非真即假的直言命題形式,如果條件不充足,命題真假不能判定,我們把數(shù)獨(dú)中這種命題之間的真假關(guān)系稱之為鏈。用鏈解題的邏輯在于,籍由命題真假值的推導(dǎo),根據(jù)鏈兩端點(diǎn)命題的真假來判斷其共同作用格內(nèi)候選數(shù)的真假。 強(qiáng)關(guān)系(Strong Links)和弱關(guān)系(Weak Links)鏈可分為強(qiáng)鏈與弱鏈,分別由強(qiáng)關(guān)系和弱關(guān)系構(gòu)成,定義如下: 強(qiáng)關(guān)系——對(duì)應(yīng)矛盾關(guān)系和下反對(duì)關(guān)系,兩個(gè)命題不可同假,必有一真(下反對(duì)關(guān)系可以同真); 弱關(guān)系——對(duì)應(yīng)矛盾關(guān)系和上反對(duì)關(guān)系,兩個(gè)命題不可同真,必有一假(上反對(duì)關(guān)系可以同假)。 ![]() 圖1-矛盾關(guān)系 ?圖1小九宮格中,數(shù)字A只可能出現(xiàn)在R1C1和R3C3兩個(gè)格中。根據(jù)數(shù)獨(dú)規(guī)則,數(shù)字1-9在每個(gè)Unit(行Row、列Column、宮Box)中均需出現(xiàn)且僅出現(xiàn)1次,易知兩個(gè)A之間為矛盾關(guān)系,兩者不可同假,必為一真一假,可作出判斷:(1)若 R1C1≠A,則R3C3=A,兩個(gè)A之間為強(qiáng)關(guān)系,構(gòu)成強(qiáng)鏈,記作R1C1{A}==R3C3{A};(2)若R1C1=1,則R3C3≠1,兩個(gè)A之間為弱關(guān)系,構(gòu)成弱鏈,記作R1C1{1}—R3C3{1}。 ![]() 圖2-上反對(duì)關(guān)系 ?再看一個(gè)例子,圖2中,數(shù)字A僅能出現(xiàn)在三個(gè)格中,根據(jù)數(shù)獨(dú)規(guī)則,可知必有一個(gè)A為真,其余兩個(gè)為假,則三個(gè)A兩兩之間不能同真,為上反對(duì)關(guān)系,可作出以下判斷:(1)若R1C1=A,則R2C2、R3C3≠A;(2)若R2C2=A,則R1C1、R3C3≠A;(3)若R3C3=A,則R1C1、R2C2≠A。 在本例中,存在三條弱鏈,分別是R1C1{A}—R2C2{A}, R1C1{A}—R3C3{A}, R2C2{A}—R3C3{A}。 在以上兩例中,可以看到,當(dāng)某單元內(nèi)特定候選數(shù)僅存在于兩個(gè)格中時(shí),兩格中的該候選數(shù)是矛盾關(guān)系,二者之間既構(gòu)成強(qiáng)鏈也構(gòu)成弱鏈。而當(dāng)該候選數(shù)存在于三個(gè)及以上格中時(shí),兩兩之間是上反對(duì)關(guān)系,構(gòu)成弱鏈。 ![]() 圖3-矛盾關(guān)系、上反對(duì)關(guān)系 強(qiáng)弱關(guān)系并不只局限于同一候選數(shù),在圖3九宮格中,R1C1中僅存在候選數(shù)A、B,R3C3中僅存在候選數(shù)A、B、C。如前兩例,我們可知,R1C1格中的A和B為矛盾關(guān)系,二者之間即是強(qiáng)鏈也是弱鏈,R3C3中的A、B、C兩兩之間為上反對(duì)關(guān)系,構(gòu)成弱鏈。 ![]() 圖4-下反對(duì)關(guān)系、ALS 圖4是復(fù)雜一點(diǎn)的情況,R1C1、R23C2三格中共有{1234}四個(gè)候選數(shù)(這種n格中有n+1個(gè)候選數(shù)的結(jié)構(gòu)稱為ALS——Almost Locked Set),根據(jù)數(shù)獨(dú)規(guī)則,可知這四個(gè)候選數(shù)中有且只有一個(gè)為假,由強(qiáng)弱鏈定義易知1、2、3和4之間,兩兩互為強(qiáng)鏈。與前述矛盾關(guān)系的例子不同,本例{1234}中必有三個(gè)為真,則其兩兩之間為下反對(duì)關(guān)系,可以同真,不能構(gòu)成弱鏈。 鏈?zhǔn)侨绾喂ぷ鞯?/b>以上我們對(duì)強(qiáng)弱鏈有了基本的了解,接下來我們把鏈連接起來看看會(huì)發(fā)生什么。首先是強(qiáng)弱強(qiáng)鏈,A==B—C==D,我們根據(jù)強(qiáng)弱鏈的定義,畫出真值表(只保留有效推導(dǎo)) ![]() 圖5-強(qiáng)弱強(qiáng)鏈真值表 由圖5可以看到,不論A取真值還是假值,在鏈的起點(diǎn)A和終點(diǎn)D中至少有一真,即A與D之間為強(qiáng)關(guān)系。我們僅考慮A為假的情況(若其為真,則已經(jīng)可以用來刪數(shù)),當(dāng)A為假時(shí),由于A、B、C、D由強(qiáng)弱鏈交替連接,推導(dǎo)如下:(1)若A為假,根據(jù)強(qiáng)鏈定義B只能為真;(2)若B為真,根據(jù)弱鏈定義C只能為假;(3)若C為假,根據(jù)強(qiáng)鏈定義D只能為真。 可見這種情況下只存在有一種有效推導(dǎo)形式,即A假D真,顯然,只要保證以強(qiáng)鏈?zhǔn)家詮?qiáng)鏈終,? 即使將這條鏈不斷延長(zhǎng)下去仍可得出同樣結(jié)論:若起點(diǎn)為假則終點(diǎn)必然為真。綜上可知,強(qiáng)弱強(qiáng)鏈的兩端點(diǎn)互為強(qiáng)關(guān)系,必有一個(gè)為真。 我們?cè)賮砜慈鯊?qiáng)弱鏈的推導(dǎo)。A—B==C—D,真值表如下: ![]() 圖6-弱強(qiáng)弱鏈真值表 可見A與D中至少有一假,二者互為弱關(guān)系。將其不斷延長(zhǎng),結(jié)果仍會(huì)是這樣,推導(dǎo)過程不再贅述。這種情況不能直接用來刪減A、D共同作用格的候選數(shù)。 ![]() 圖7-強(qiáng)強(qiáng)強(qiáng)鏈真值表 如果將三條強(qiáng)鏈連接又會(huì)如何呢?A==B==C==D,從圖7真值表中可以看到,鏈的兩端點(diǎn)A和D一真一假、全真全假都有可能,也沒有刪減效果。 由以上推導(dǎo)我們可以總結(jié),在數(shù)獨(dú)解題過程中,鏈的工作模式是,找到數(shù)獨(dú)盤勢(shì)中的強(qiáng)鏈,用弱鏈將之連接,在此過程中保證強(qiáng)弱交替,以強(qiáng)鏈?zhǔn)家詮?qiáng)鏈終,則鏈的兩端點(diǎn)互為強(qiáng)關(guān)系,必有一真,若其存在共同作用格,則可對(duì)共同作用格內(nèi)的相應(yīng)候選數(shù)進(jìn)行刪減。 鏈的簡(jiǎn)單應(yīng)用來看一個(gè)例子,在圖8的盤勢(shì)中,可以找到一條從R1C4到R4C6的5的鏈(實(shí)線代表強(qiáng)鏈,虛線代表弱鏈,R1C4{5}==R1C9{5} — R4C9{5}==R4C6{5}),這條鏈強(qiáng)弱交替,且以強(qiáng)鏈?zhǔn)家詮?qiáng)鏈終,可知R1C4的5與R4C6的5互為強(qiáng)關(guān)系,必有一個(gè)成立,不管哪個(gè)成立都可以刪去R1C4、R4C6共同作用格(綠色區(qū)域)里的5。推導(dǎo)過程如右:(1)若 R1C4=5,則R2C6、R5C4≠5;(2)若R1C4≠5?→ R1C9=5 → R4C9≠ 5 → R4C6=5,則 R2C6、R5C4≠5。 ![]() 圖8-Skyscraper ps:上圖中的結(jié)構(gòu)稱為摩天樓(Skyscraper),是雙強(qiáng)鏈(強(qiáng)弱強(qiáng)鏈)的一種基礎(chǔ)應(yīng)用。 再看一個(gè)稍微復(fù)雜點(diǎn)的例子,在圖9盤勢(shì)中,可以找到一條從R4C6到R6C1的6的鏈(實(shí)線箭頭代表強(qiáng)鏈,虛線代表弱鏈),可知R4C6與R6C1中的6互為強(qiáng)關(guān)系,必有一個(gè)成立,故可刪去R4C6與R6C1共同作用格(綠色區(qū)域)內(nèi)的6。大家可自行推導(dǎo)以加強(qiáng)對(duì)鏈的掌握。 ![]() 圖9-異數(shù)鏈 |
|
|