數(shù)獨(dú)清EH的數(shù)獨(dú)雜談 #12-1 毛刺初步
數(shù)獨(dú)清EH的數(shù)獨(dú)雜談 #12-1 毛刺初步如下:
前置知識:本系列1-6章,7-1,8-1,8-2,9-1,9-2,10,11-1
(如果沒能全部掌握也不要擔(dān)心,感受本節(jié)提供的思路即可)
--------目錄--------
一、從魚鰭到毛刺
二、毛刺的用法&一些約定
1. 毛刺的用法
2. 一些約定
三、毛刺實(shí)戰(zhàn)
1. 刺數(shù)組
2. 刺AIC
3. 刺連續(xù)環(huán)
四、毛刺與構(gòu)造的聯(lián)動
--------------------
歡迎回來!在第11章中,我為大家展示了三大法寶之一——構(gòu)造,它能幫助我們發(fā)掘更深層次的強(qiáng)關(guān)系或弱關(guān)系。但即使知道了這個思想方法,在實(shí)戰(zhàn)中依然可能會受到局限:在候選數(shù)非常多的時候,你可能很難將鏈拓展到其他地方去,導(dǎo)致你在構(gòu)造過程中進(jìn)行的種種嘗試都有可能無功而返。
另一種情況更加令人煩惱:你費(fèi)盡心力在盤面上試圖尋找你所知道的結(jié)構(gòu),例如XY-wing,鏈列,連續(xù)環(huán),SDC等等,結(jié)果卻發(fā)現(xiàn)總是多出一兩個候選數(shù),導(dǎo)致結(jié)構(gòu)無法直接使用。
在過去,這會導(dǎo)致你不得不改弦易轍,去其他地方尋找能用的技巧,或者尋求非常冗長而晦澀的鏈。但現(xiàn)在,我將為你帶來三大法寶之二,它可以從這種窘境中開拓新的路徑,將已有的結(jié)構(gòu)的價值發(fā)揮到極致——
讓我們有請:毛刺。這會是你所接觸過的最偉大的思想方法之一。它和數(shù)獨(dú)其他一切技巧聯(lián)動,而且配合構(gòu)造和秩理論可以發(fā)揮其最大效用。
但是,熟練掌握毛刺需要大量的練習(xí)和刻苦的思考。你準(zhǔn)備好了嗎?
一、從魚鰭到毛刺
在8-2中,我們已經(jīng)接觸過鰭魚的一個實(shí)例了,詳見圖12-1.1。
圖中綠色圈表示一條二鏈列,r4c3(6)是這條魚的鰭。如果沒有這個鰭,那么綠色圈就能發(fā)揮標(biāo)準(zhǔn)二鏈列的作用,刪除c25兩列其余的候選數(shù)6?,F(xiàn)在由于鰭的存在,刪數(shù)的規(guī)模受到了限制。
在這里,結(jié)構(gòu)不僅可以刪除r5c2(6),還可以通過將鰭直推的方式,進(jìn)一步刪除r9c46(6)。在這個過程中,我們實(shí)際上是在找“鰭為真”和“原標(biāo)準(zhǔn)二鏈列為真”時的共同結(jié)論。
這兩段話就共同闡釋了毛刺的概念:當(dāng)原結(jié)構(gòu)由于多出了一些候選數(shù)導(dǎo)致其不能直接使用時,這些多出來的候選數(shù)稱為該結(jié)構(gòu)的毛刺;特別地,如果原結(jié)構(gòu)的部分刪數(shù)可以被所有的毛刺刪除,那么這些刪數(shù)就一定可以刪除。顯然在剛才的例子中,這個r4c3(6)就是二鏈列的毛刺。
像構(gòu)造一樣,讀者不必在毛刺的概念上鉆牛角尖。
二、毛刺的用法&一些約定
1. 毛刺的用法
根據(jù)毛刺的概念,毛刺通常有如下使用方法(本節(jié)只需掌握第1條;第2條和第3條我們會在以后的章節(jié)介紹):
(1)設(shè)刺為真,通過直推刪除原結(jié)構(gòu)的刪數(shù);
(2)對于準(zhǔn)秩零結(jié)構(gòu)(第13章會講),其毛刺如果推出預(yù)備刪數(shù)(往下看)為真,則形成綻放環(huán)(第13章會講)產(chǎn)生額外刪數(shù);
(3)對于準(zhǔn)秩零結(jié)構(gòu),如果毛刺為真可以導(dǎo)致矛盾/無解,或者其刪除了所有的預(yù)備刪數(shù),則毛刺本身可以刪除。
2. 一些約定
為了后續(xù)的交流方便,現(xiàn)作出如下約定和定義:
(1)當(dāng)毛刺不存在時,原結(jié)構(gòu)的刪數(shù)稱為『預(yù)備刪數(shù)』。之所以叫預(yù)備刪數(shù),是因為它們并不能直接刪除,需要進(jìn)行驗證。
(2)在筆者的圖中,默認(rèn)以紫圈代表毛刺,紫線代表預(yù)備刪數(shù);暖色調(diào)箭頭代表直推(即依次經(jīng)過一條弱鏈和一條強(qiáng)鏈,也就是通過A真推得B真的過程),紅色叉叉代表確定的刪數(shù)。
三、毛刺實(shí)戰(zhàn)
在講完必要的概念之后,是時候帶你們親身感受毛刺的威力了。我們將通過三則實(shí)例講解毛刺的第一種用法,但你完全可以將毛刺用于其他地方。
1. 刺數(shù)組
如果一個數(shù)組里多出了一個候選數(shù),我們以往會將其當(dāng)做ALS來尋找強(qiáng)弱關(guān)系?,F(xiàn)在,你可以把多出的候選數(shù)當(dāng)做毛刺進(jìn)行直推,找到和原數(shù)組共同的刪數(shù)結(jié)論。
讓我們看看圖12-1.2吧。
六宮的綠框內(nèi),如果沒有毛刺r5c8(2),則構(gòu)成178數(shù)組,其預(yù)備刪數(shù)如下:r2c8(1),r56c7(1)和r456c7(8)。
現(xiàn)在當(dāng)毛刺為真時,我們可以按照圖上的紅色箭頭,依次推出r9c8(8),r7c7(7)為真。這樣r89c9成為69數(shù)組,推出r1c9(8)為真。結(jié)合r7c7(7)和r1c9(8),推出r3c7(1)為真。
這個r3c7(1)可以刪除r56c7(1),也就是刪除數(shù)組的預(yù)備刪數(shù)。所以r56c7(1)就是結(jié)構(gòu)的刪數(shù)。
*部分讀者可能會在這里糾結(jié):剛才的過程不就是把r5c8(2)代入嗎?這跟粗暴的試數(shù)有什么區(qū)別?
*實(shí)際上,純粹的試數(shù)并不總是正確的,其正確與否在選定要代入的數(shù)字之時就已確定,并且直到余盤瓦解或者發(fā)現(xiàn)矛盾才能作出定論;但這里毛刺的代入是為了找尋公共結(jié)論,通過刺真得到的公共刪數(shù),是可以保證一定正確的,并允許玩家立刻將其刪除。
2. 刺AIC
如同數(shù)組一樣,鏈也可以采取毛刺。具體來講,如果刪去一個候選數(shù)能產(chǎn)生一條有結(jié)論的鏈,那么完全可以把這個候選數(shù)當(dāng)做毛刺。
圖12-1.3展示了一個刺W-Wing的例子。
我們知道,W-Wing就是一條特殊的鏈。注意到兩個綠框框起來的只含候選數(shù)78的格子,以及8列的數(shù)字8的排布。要是沒有r2c8(8),W-Wing就形成了。
因此以r2c8(8)為刺,則綠框構(gòu)成W-Wing,得到強(qiáng)關(guān)系r7c7(7)=r6c9(7),預(yù)備刪數(shù)如下:r456c7(7),r8c9(7)。
當(dāng)毛刺為真時,可以直推出r56c8(7)為真,從而刪除r456c7(7)。
3. 刺連續(xù)環(huán)
刺連續(xù)環(huán)除了直推公共結(jié)論以外,還有一些獨(dú)特的性質(zhì),這使得刺連續(xù)環(huán)比刺AIC更加強(qiáng)大和實(shí)用。當(dāng)然,這并不是現(xiàn)在就需要關(guān)心的問題。
圖12-1.4是一個刺連續(xù)環(huán)的例子。
我們暫時忽略所有的粉線。如果你要在這里尋找關(guān)于8的單數(shù)鏈,你可能會找到下面的雙線風(fēng)箏:
r1c6(8)=r8c6(8)-r9c4(8)=r9c7(8)
它沒有直接的結(jié)論。但如果以r2c9(8)為刺,這條鏈就能進(jìn)一步延展為連續(xù)環(huán):
r1c6(8)=r8c6(8)-r9c4(8)=r9c7(8)-r23c7(8)=r1c89(8)-r1c6(8)
其預(yù)備刪數(shù)有r8c5(8)和r6c7(8)。
現(xiàn)在令刺為真,則沿著粉色箭頭,直推出r2c2(3),r9c2(2),r9c4(8)。從而刪除r8c5(8)。
如果你看懂了上面的三個例子,你就理解了毛刺的最基礎(chǔ)用法。如果你能夠完成3-4星的題目,但面對5星題目束手無策,那么現(xiàn)在,你就已經(jīng)擁有了對抗5星題的法寶。
選擇對什么結(jié)構(gòu)使用毛刺,是非常自由的。但想要讓你的毛刺一針見血,就需要大量的練習(xí)來積累實(shí)戰(zhàn)經(jīng)驗了。
四、毛刺與構(gòu)造的聯(lián)動
在11-1中,我們講述了基于AIC+和規(guī)避非法結(jié)構(gòu)的構(gòu)造。有了毛刺之后,構(gòu)造的方法就又多了一種:
如果原結(jié)構(gòu)成立,其預(yù)備刪數(shù)全部刪除時可以出數(shù),則毛刺與這些出數(shù)成強(qiáng)關(guān)系。
有些抽象?沒關(guān)系,我們來看看圖12-1.5的例子。
首先注意涂綠的五格,以紫色的r7c6(4)為毛刺,如果去掉它,則這五格形成SDC,其預(yù)備刪數(shù)為r8c89(4),從而出數(shù)r8c8=8。
這時我們發(fā)現(xiàn),去掉r7c6(4)能推出r8c8(8),這不就是強(qiáng)鏈的定義嗎?將這個強(qiáng)鏈稍作拓展,得鏈
r3c6(1)=r45c6(4)-r7c6(4)=r8c8(8)-r2c8(8=1)
產(chǎn)生刪數(shù)r2c6(1)和r3c8(1),余盤瓦解。
當(dāng)然,這個結(jié)論直接用鏈也能得到,這里只是以此說明毛刺構(gòu)造強(qiáng)鏈的思路。萬一你需要它呢?
小結(jié):
(1)當(dāng)原結(jié)構(gòu)由于多出了一些候選數(shù)導(dǎo)致其不能直接使用時,這些多出來的候選數(shù)稱為該結(jié)構(gòu)的毛刺;特別地,如果原結(jié)構(gòu)的部分刪數(shù)可以被所有的毛刺刪除,那么這些刪數(shù)就一定可以刪除。這是毛刺的最基本邏輯。
(2)可以使用毛刺來構(gòu)造強(qiáng)鏈:若原結(jié)構(gòu)成立時可以出數(shù),則毛刺與這些出數(shù)成強(qiáng)關(guān)系。
以上就是數(shù)獨(dú)清EH的數(shù)獨(dú)雜談 #12-1 毛刺初步相關(guān)內(nèi)容。
數(shù)獨(dú)清相關(guān)游戲推薦
30.67MB
34.88MB
84.49MB
46.70MB
23.04MB
32.48MB
22.65MB
44.83MB
4.10MB
閩公網(wǎng)安備 35021102000359號
網(wǎng)絡(luò)文化經(jīng)營許可證號:閩網(wǎng)文(2016)4364-073號