最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

第 40 講:嵌套結(jié)構(gòu)的環(huán)

2021-07-29 07:56 作者:SunnieShine  | 我要投稿

Part 1?ALS環(huán)

如圖所示,鏈寫法如下:

由于環(huán)可以任意端點(diǎn)起頭,對應(yīng)也可以任意端點(diǎn)結(jié)尾,所以我們的最后使用弱關(guān)系來表達(dá)它產(chǎn)生了循環(huán):把最后一個(gè)節(jié)點(diǎn)寫到鏈頭上去。

我們按照最初的環(huán)的視角,來理解一下刪數(shù)到底是怎么產(chǎn)生的。

首先是r3c4 <> 68。這一點(diǎn)很清晰,因?yàn)閞3c4(2)和r3c4(3)是弱關(guān)系,環(huán)結(jié)構(gòu)的其中一個(gè)特性是環(huán)內(nèi)的所有弱關(guān)系共同對應(yīng)的位置(交集)都可以直接刪除,所以r3c4內(nèi)其余候選數(shù)都可刪除;

其次是r8c56 <> 23。這一點(diǎn)是因?yàn)閞8c56(23)是分別處于r9c4(2)和r9c5(2)的弱關(guān)系所處區(qū)域和r79c5(3)和r79c4(3)的弱關(guān)系所處區(qū)域。所以b8和r9上其余位置的候選數(shù)2都可刪除,而b8內(nèi)其余位置的候選數(shù)3都可刪除。當(dāng)然了,r9c12(2)也就因?yàn)閯偛耪f的原因被刪掉。

那么,r58c5(56)呢?這個(gè)環(huán)根本就沒涉及5和6,全是2和3。如果你這么想就錯(cuò)了。我們嘗試觀察ALS區(qū)域(r179c5)。之前的環(huán)結(jié)構(gòu)內(nèi)有一個(gè)特性:環(huán)內(nèi)只有兩種填數(shù)情況。這意味著每兩個(gè)相鄰節(jié)點(diǎn)的填數(shù)情況真假性一定是相反的。也就是說,r9c5(2)和r79c5(3)兩個(gè)節(jié)點(diǎn)真假性相反,即:

  • r9c5(2)為真,r79c5(3)為假;

  • r9c5(2)為假,r79c5(3)為真。

只有這樣兩種情況。那么,如果r9c5(2)為真的話,ALS區(qū)域內(nèi)必然有一個(gè)5、6顯性數(shù)對,出現(xiàn)在r17c5;如果是r79c5(3)為真的話,由于這里是同一區(qū)域內(nèi)的多個(gè)候選數(shù)3為真,所以不管是r7c5還是r9c5的候選數(shù)3為真,剩下另外一格都不應(yīng)有候選數(shù)3(要保證只能有一個(gè)3為真,否則違反數(shù)獨(dú)規(guī)則),然后和r1c5構(gòu)成5、6的顯性數(shù)對。

所以不管怎么樣,都會構(gòu)成5、6顯性數(shù)對,所以c5內(nèi)其余單元格都不應(yīng)有5和6,刪除掉它們。這也就是為什么最后還有一個(gè)r58c5 <> 56的原因。

那么,這種環(huán)結(jié)構(gòu)嵌入了ALS,所以我們一般稱這種結(jié)構(gòu)就叫帶ALS的環(huán)(Grouped Continuous Nice Loop With ALS)。接下來我再舉一個(gè)例,請自行思考它的所有刪數(shù)成立的原因。

Part 2?毛刺數(shù)組環(huán)

我們再來看帶有一個(gè)毛刺數(shù)組的環(huán)結(jié)構(gòu)。

如圖所示,鏈如下所示:

首先,我們能找到所有弱關(guān)系的刪數(shù):r2c4(2)、{r1c9, r2c789, r3c8}(4);然后是r3的ALS的刪數(shù):r3c128 <> 7。接著我們來著重觀察這個(gè)毛刺顯性數(shù)對。

當(dāng)r1c7 <> 4時(shí),r16c7形成7、8數(shù)對結(jié)構(gòu),所以r5c7 <> 7,鏈得以繼續(xù)下去。那么刪數(shù)怎么看呢?實(shí)際上,我們就把它當(dāng)成真正的數(shù)對來刪數(shù)就可以了。為什么呢?我們只要保證環(huán)的兩種填法下,都能產(chǎn)生7、8數(shù)對就可以。

當(dāng)我們從示例這個(gè)環(huán)的方向來看,顯然是構(gòu)成數(shù)對的,所以這個(gè)情況成立;而另外一種填法正好就可以反向來理解。當(dāng)我們反向理解的時(shí)候,假設(shè)從r5c7(2)開始,設(shè)為假。那么r5c7(7)為真,此時(shí)r16c7(78)的毛刺顯性數(shù)對結(jié)構(gòu)已經(jīng)被破壞,所以毛刺顯性數(shù)對節(jié)點(diǎn)此時(shí)是為假的,但是,數(shù)字8不得不填在r6c7里,因?yàn)閞6c7是雙值格,而此時(shí)r5c7 = 7,所以r6c7不得不填8。這樣一來,c7就依然存在7和8,所以其余位置照樣是可以刪除7和8的。

看起來這里只是巧合,但實(shí)際上并不是。因?yàn)橐獦?gòu)成毛刺顯性數(shù)對,就需要一個(gè)單元格是恰好雙值格的形式存在(比如{ab}),或者不是雙值格,也要保證兩個(gè)單元格有額外的數(shù)字要一致(比如是{abcd}或{abd}),這樣才能通過強(qiáng)弱關(guān)系來延續(xù)。如果一個(gè)單元格是{abc},而另外一個(gè)單元格卻是{abd}的話,這樣我們并不能夠得到任何合適的結(jié)論。特別要引起注意的是,此時(shí)的{abc}和{abd}的c和d并非強(qiáng)關(guān)系,因?yàn)樗皇茿LS。

Part 3?AUR環(huán)

如圖所示,這個(gè)環(huán)稍微有一些復(fù)雜,鏈寫法如下:

這些基本的刪數(shù),相信我也不用過多去介紹和解釋了。還是環(huán)的第一個(gè)特性:所有弱關(guān)系對應(yīng)可刪(拆成鏈后刪除)。

觀察這個(gè)AUR(我們單獨(dú)看這個(gè)AUR結(jié)構(gòu)),因?yàn)橹罢f到,相鄰兩個(gè)節(jié)點(diǎn)的真假性不同,所以r4c7(8)和r3c8(9)自然真假性就不一樣了。那么就有這樣兩種情況:

  • r3c8(9)真,r4c7(8)假;

  • r3c8(9)假,r4c7(8)真。

因?yàn)锳UR歸根結(jié)底就是避免致命形式,而內(nèi)部一定是由產(chǎn)生的數(shù)對導(dǎo)致的,我們從這一點(diǎn)來思考就簡單一些了。這樣一來,我們就分成兩個(gè)情況作圖給大家看。如圖所示。

  • 如果是左圖這種情況(r3c8(9)真),則r4c7(8)自然應(yīng)該為假,此時(shí)r34c7和r4c78都應(yīng)該是67顯性數(shù)對,可以刪除的部分用淺紅色標(biāo)注了出來;

  • 如果是右圖這種情況(r4c7(8)真),則r3c8(9)自然就應(yīng)該為假了,此時(shí)r3c78和r34c8就會構(gòu)成67顯性數(shù)對,可以刪除的部分用淺紅色標(biāo)注。

我們就發(fā)現(xiàn)了一個(gè)地方,是兩種情況都可以刪掉的:

所以,r1c7 <> 7就是AUR在嵌入環(huán)里面的特別刪數(shù)。這個(gè)結(jié)構(gòu)叫做帶AUR的環(huán)(Grouped Continuous Nice Loop With AUR)。

Part 4?AUR環(huán)的另一則示例

這個(gè)例子的環(huán)的長度只有4,但依然能讓我們學(xué)習(xí)。

如圖所示,這個(gè)環(huán)我們假定從r4c7(1)開始,設(shè)該節(jié)點(diǎn)為假,則r6c7(8)必須為真,否則同假會導(dǎo)致c7放1和8的位置只有r2c7一個(gè)單元格,導(dǎo)致矛盾;接著,r6c7(8)為真時(shí),則必須r2c9(6)為假。否則同真將導(dǎo)致r6c9無法填數(shù)。再接著,當(dāng)r2c9(6)為假后,則必須r4c1(1)為真。因?yàn)楫?dāng)r2c9(6)為假時(shí),r2出現(xiàn)6、7的隱性數(shù)對,位于r2c13,如果此時(shí)r4c1(1)為假的話,則r4c13變?yōu)?、7顯性數(shù)對,此時(shí)r24c13均只含有6和7,形成致命形式。所以r4c1(1)必須為真。

鏈的推導(dǎo)就到這里,那么刪數(shù)比較好理解的是r4c28(1),不過其它的呢?首先我們來分析r2c7(5)是怎么刪除的。實(shí)際上,不論r4c7(1)成立也好,r6c7(8)成立也好,由于c7只有三個(gè)單元格可以放下1和8,而此時(shí)如果r2c7 = 5,就會讓一個(gè)和1、8不相關(guān)的數(shù)字占了其中一個(gè)單元格,導(dǎo)致剩下兩個(gè)單元格里無法正常放下1和8(環(huán)內(nèi)的相鄰兩個(gè)節(jié)點(diǎn)的真假性相反,即必須一真一假)。所以r2c7 <> 5。

接著我們再來看r6c23(8)和r5c9(8)。我們可以發(fā)現(xiàn)的是,這三個(gè)候選數(shù)處于r6c7(8)節(jié)點(diǎn)r2c9(6)節(jié)點(diǎn)的所在行列上,我們討論它們倆即可。當(dāng)r6c7(8)為真時(shí),顯然可以刪除這三個(gè)候選數(shù);而當(dāng)r2c9(6)為真時(shí),雖然不明顯,但是可以發(fā)現(xiàn),我們用來推矛盾的r6c9派上了用場:此時(shí)r6c9只能放下8(雙值格的關(guān)系,其中的6被設(shè)定的r2c9(6)排除了)。所以此時(shí)這三個(gè)數(shù)依然是可以被刪除的,所以這三個(gè)候選數(shù)依舊可以被刪掉。

所以這個(gè)鏈的總的刪數(shù)一共就有這么多??梢园l(fā)現(xiàn),鏈很短,但需要分析很長的時(shí)間。

Part 5?待定拓展矩形環(huán)

如圖所示,這個(gè)環(huán)的邏輯比較簡單,所以就不寫文本寫法了,不過我們來看看這個(gè)待定拓展矩形的刪數(shù)究竟如何。

我們只提取出待定拓展矩形結(jié)構(gòu),分情況討論。依舊是跨結(jié)構(gòu)的兩個(gè)節(jié)點(diǎn):r5c2(1)和r3c23(9)。我們分別討論兩個(gè)情況,如下面的兩個(gè)圖所示。

當(dāng)r5c2(1)為真時(shí),顯然我們可以發(fā)現(xiàn)r5c3 = 2、r7c3 = 5;當(dāng)r3c23(9)為真時(shí),可以發(fā)現(xiàn)r5c23為2、5的顯性數(shù)對,這便使得r46c3兩個(gè)單元格是不論如何都不能放2和5的,否則它就會使得兩種情況都產(chǎn)生矛盾。所以這個(gè)例子的額外刪數(shù)還有r4c3(2)。當(dāng)然,r46c3(25)是理論上的刪數(shù),而題目上并不存在其它的三個(gè)候選數(shù),就不用管了。

Part 6 對交空矩形

如圖所示,r3c1只有候選數(shù)3和4,b2里也同時(shí)包含3和4的空矩形結(jié)構(gòu)。

  • 如果假設(shè)r3c1 = 3,則由于空矩形的關(guān)系,r12c4(3)為真,所以r4c4 = 4;

  • 如果假設(shè)r3c1 = 4,由于空矩形的關(guān)系,r12c4(4)為真,所以r4c4 = 3。

可以看到,只要我們假設(shè)出其中一種情況,則得到r4c4的填數(shù)就一定是另外一種情況,所以我們可以得到r3c1和r4c4此時(shí)形成跨區(qū)數(shù)對結(jié)構(gòu),所以r3c4和r4c1都不能填入3和4。

與此同時(shí),由于空矩形結(jié)構(gòu)的特殊性,在r3和c4上都會產(chǎn)生3和4,一個(gè)位于r3c1或r4c4兩個(gè)單元格上,而另外一個(gè)單元格則一定在這個(gè)空矩形里。所以r3和c4里的其余位置也都不可以放3和4,刪掉它們。

可以看到,這個(gè)示例里我們通過空矩形得到了一個(gè)跨區(qū)數(shù)對,而更巧妙的是,它甚至還得到了類似于欠一數(shù)對的結(jié)果,所以這個(gè)技巧叫做對交空矩形(Empty Rectangle Intersection Pair)。

我們不妨再來看一則示例。

如圖所示,我們類比上述邏輯假設(shè)。如果假設(shè)r9c1 = 7,則可以發(fā)現(xiàn)b9只有r789c9和r9c78五個(gè)單元格可以放入7和9,而它們恰好構(gòu)成L形狀(所謂的“空矩形”區(qū)域)。那么,b9里,r9c789里就不能是7了,而r78c9則必須有一個(gè)是7。接著,我們就可以得到r1c9 = 9了。

觀察一下推理邏輯,我們可以發(fā)現(xiàn),當(dāng)我們假設(shè)r9c1 = 9時(shí),也可以類比上述邏輯,依舊可以得到r1c9 = 7的結(jié)果。所以我們完全可以得到r1c9和r9c1是一組關(guān)于7和9的跨區(qū)數(shù)對結(jié)構(gòu),于是,r1c9和r9c1本對應(yīng)得到的地方(如r1c1和r9c9)顯然就不能再放入多余的7和9了,所以可以刪除掉;與此同時(shí),b9的空矩形區(qū)域里,必須有一處區(qū)塊里是填入7的,而另外一組區(qū)塊里則是填入9的,這恰好又使得r9和c9上產(chǎn)生了關(guān)于7和9的數(shù)對結(jié)構(gòu),所以刪除掉其余位置的7和9。所以圖上的所有紅色候選數(shù)均可以被刪除。

在仔細(xì)看過兩個(gè)示例的你,是否真正理解到它的邏輯了呢?

?

至此,我們學(xué)習(xí)了很多關(guān)于環(huán)的使用套路和方式,環(huán)的內(nèi)容就暫時(shí)告一段落,接下來將會有一個(gè)從另外一個(gè)維度拓展鏈的思想:強(qiáng)制鏈(Forcing Chain)。


第 40 講:嵌套結(jié)構(gòu)的環(huán)的評論 (共 條)

分享到微博請遵守國家法律
施甸县| 桐城市| 永兴县| 子洲县| 宝坻区| 四会市| 永顺县| 桃源县| 双鸭山市| 易门县| 乐山市| 成都市| 阳朔县| 海丰县| 天气| 清镇市| 唐河县| 石台县| 沾化县| 东台市| 淮南市| 灵璧县| 井冈山市| 青州市| 清镇市| 台中县| 贺州市| 大余县| 三门县| 德惠市| 靖边县| 三都| 湖北省| 读书| 克什克腾旗| 百色市| 星座| 日照市| 文山县| 青田县| 集安市|