第 50 講:探長(zhǎng)致命結(jié)構(gòu)
Part 1?結(jié)構(gòu)的形成
現(xiàn)在我們來(lái)看一種新的致命結(jié)構(gòu),我們先來(lái)看下如下的三個(gè)例子。

如圖所示,我們可以看到,這就是一個(gè)普通的UL結(jié)構(gòu),只涉及6個(gè)單元格。我們把這個(gè)例子進(jìn)行推廣。我們嘗試把結(jié)構(gòu)改寫一下,讓這個(gè)結(jié)構(gòu)涉及三個(gè)數(shù),變?yōu)橄旅孀髨D這樣,而下面右側(cè)的這個(gè)結(jié)構(gòu)就是它的更高規(guī)格的形式。


不過(guò)看起來(lái)這個(gè)結(jié)構(gòu)似乎并不太像是一個(gè)致命結(jié)構(gòu),現(xiàn)在我們來(lái)證明之。
Part 2?證明
我們拿出結(jié)構(gòu),針對(duì)于b68的四個(gè)結(jié)構(gòu)涉及的單元格作為假設(shè)條件。由于兩個(gè)單元格顯然只能填入兩種數(shù)字,但結(jié)構(gòu)本身是可以出現(xiàn)三種數(shù)的(稍后將給出證明),所以我們不妨就按照所有的情況一一進(jìn)行枚舉,看看是否全部情況都可以導(dǎo)致致命形式的出現(xiàn),或者根本不存在這種形式。
首先,結(jié)構(gòu)涉及三種數(shù)字,那么b68兩側(cè)放置的數(shù)對(duì)就只可能有兩種情況:兩側(cè)是一樣的數(shù)對(duì)和兩側(cè)有一個(gè)數(shù)不一樣(比如1、2和1、2,以及1、2和1、3),顯然不會(huì)有其它情況了。
先考慮第一種情況。

如右圖所示,這是第一種情況(當(dāng)然,2、3和2、3以及1、3和1、3的情況和這里假設(shè)的情況是一樣的,所以其它兩種就不用再去證明了)。那么,可以從圖里看到,b9是有一個(gè)三數(shù)組的,所以我們針對(duì)于1和2而言來(lái)假設(shè)分布情況,那么就只有三種情況。
1和2橫著放在r7c78上;
1和2豎著放在r78c7上;
1和2斜著放在r7c8和r8c7上。
顯然,第一種情況將會(huì)直接在r67c78上產(chǎn)生關(guān)于1和2的UR的致命形式,所以這種情況將被我們排除掉;第二種情況也是如此,在r78c67上產(chǎn)生關(guān)于1和2的UR的致命形式,所以只可能是第3種填法,即把1和2“斜著”放進(jìn)去。但是斜著放也產(chǎn)生了致命形式,是UL的致命形式,所以三種情況全部出現(xiàn)致命形式,故第一種情況是可以產(chǎn)生致命形式的。
可能你在這里會(huì)問(wèn)我,為什么在證明的時(shí)候不能使用UR。比如這里可以看到結(jié)構(gòu)里產(chǎn)生了r67c78以及r78c67的UR的區(qū)塊類型,則可以刪除兩處的3,一樣形成了致命形式,可是我并沒(méi)有在前文里這么去證明它,這是為什么呢?因?yàn)槲覀兪窃谧C明致命形式是否出現(xiàn),所以我們?cè)诮Y(jié)構(gòu)里不要使用任何致命結(jié)構(gòu)的技巧,否則結(jié)構(gòu)因?yàn)榭赡艿姆俏ㄒ惶顢?shù)情況而使用致命形式使得結(jié)構(gòu)本身變得不穩(wěn)定(多種填法、唯一填法或沒(méi)有合適的填法)。
接下來(lái)我們來(lái)看第二種情況的證明。

如圖所示,這是第二種類型,我們依舊按照b9里按橫著、豎著和斜著三種情況來(lái)放置1和2(當(dāng)然這里的數(shù)字不同,你也可以假設(shè)為放置1和3,因?yàn)榍闆r等價(jià),所以這里只需要一種情況即可)。首先橫著是不允許的,因?yàn)橐欢〞?huì)出現(xiàn)UR的致命形式;而豎著又會(huì)讓c7出現(xiàn)三個(gè)1和2的雙值格產(chǎn)生無(wú)效填法,所以這種也是不可以的;那么1和2只能斜著放進(jìn)去。
當(dāng)1和2斜著放進(jìn)去的時(shí)候,顯然可以得到r7c7 = 3的結(jié)果,于是r78c6都可以出數(shù),進(jìn)而產(chǎn)生了連鎖反應(yīng),導(dǎo)致這7個(gè)單元格全部可以出數(shù),但只有唯一的填法,如下圖所示。

但遺憾的是,r78c67產(chǎn)生了關(guān)于1和3的致命形式,所以這種情況依然是會(huì)形成致命形式的,所以,第二種情況也會(huì)形成致命形式。
所以,兩種情況都會(huì)產(chǎn)生致命形式,所以這個(gè)結(jié)構(gòu)本身就是一個(gè)致命結(jié)構(gòu)。
可以發(fā)現(xiàn)到的是,結(jié)構(gòu)在證明過(guò)程之中,位于b9的三個(gè)單元格只要是和b68兩側(cè)的數(shù)對(duì)同行列的話,都是允許的,所以這個(gè)結(jié)構(gòu)實(shí)際上有四種不同的情況,如下面四個(gè)圖所示。




其中的任意一種情況都是一個(gè)合格的致命結(jié)構(gòu)。
接下來(lái)我們嘗試證明四個(gè)數(shù)的形式是一個(gè)致命結(jié)構(gòu)。由于涉及四個(gè)數(shù),所以分情況就有三個(gè)了:兩側(cè)是一樣的數(shù)(例如1、2和1、2)、兩側(cè)有一個(gè)數(shù)不同(例如1、2和2、3)和兩側(cè)涉及的兩個(gè)數(shù)都不同(例如1、2和3、4)。
我們一個(gè)一個(gè)來(lái)看,首先是第一種情況。

如圖所示,我們依然按照前文的說(shuō)法分成三種情況,b9的1和2橫著放、豎著放和斜著放。橫著放和豎著放顯然都會(huì)出現(xiàn)錯(cuò)誤,一個(gè)會(huì)出現(xiàn)致命形式,而另外一個(gè)則會(huì)使得列上出現(xiàn)三個(gè)1和2的雙值格。所以1和2顯然只能斜著放,但是斜著放就變?yōu)榱酥叭齻€(gè)數(shù)的情況,形成了UL的致命形式,所以這個(gè)情況必然產(chǎn)生致命形式。
接著看第二種情況。

如圖所示,這是第二種情況,我們此時(shí)可以這么想這個(gè)問(wèn)題。我們把4隨意放在r78c78里的任意一個(gè)單元格里,這便使得剩下的三個(gè)單元格構(gòu)成了1、2、3的三數(shù)組結(jié)構(gòu),而配合兩側(cè)的1、2數(shù)對(duì)和2、3數(shù)對(duì),結(jié)構(gòu)形成了之前的致命形式(這里就不證明了,前文已經(jīng)證明了這個(gè)結(jié)構(gòu)),所以這個(gè)是會(huì)產(chǎn)生致命形式的。
最后我們?cè)賮?lái)看一下第三種情況,即兩側(cè)的數(shù)字沒(méi)有相同的,我們拿1和2以及3和4來(lái)舉例說(shuō)明。

如圖所示,這是第三種情況,我們照樣按照之前的分析方式,對(duì)b9里的1和2作出填數(shù)的放置情況的分析:橫著放出現(xiàn)UR致命形式;豎著放則會(huì)在c7或c8里出現(xiàn)三個(gè)1和2的雙值格,出現(xiàn)矛盾;所以此時(shí)依然只能斜著放。不過(guò)斜著有兩種情況,一種是r7c7和r8c8是1和2,另外一種則是r7c8和r8c7是1和2。我們按其中一種情況來(lái)分析即可。假定,r7c7和r8c8是1和2的話,則有如下圖所示的情況。

似乎看起來(lái)并不像是一個(gè)會(huì)產(chǎn)生致命形式的東西,我們隨意填入一種情況,而這種情況看似不會(huì)造成交換,但實(shí)際上b9內(nèi)發(fā)生了輪換,導(dǎo)致產(chǎn)生了兩種填法,所以我們?nèi)我饧僭O(shè)出其中的這兩種填法,如下圖所示。


可以看到,b9里的1、2、3、4的填法按宮內(nèi)進(jìn)行了“順時(shí)針旋轉(zhuǎn)”,即都向它逆時(shí)針上相鄰那一個(gè)單元格移動(dòng)了一下,而與此同時(shí),兩側(cè)的數(shù)對(duì)也因?yàn)閯偛诺慕粨Q而發(fā)生了變換。不過(guò),交換是合法的,因?yàn)槲覀冋业搅艘环N填數(shù)方式,使得這種填數(shù)方式和原本的填數(shù)方式完全一樣:結(jié)構(gòu)所處的所有區(qū)域下都產(chǎn)生了一致的數(shù)組結(jié)構(gòu),并未發(fā)生實(shí)質(zhì)性的、有影響的修改。比如我們這種置換形式,c7上原本是1、2、3,而輪換了之后,c7是2、3、1,依然還是這些數(shù),所以c7產(chǎn)生的兩種填法對(duì)這個(gè)區(qū)域而言并未造成任何的影響。同理其余的區(qū)域也是一樣的道理。
那么,既然結(jié)構(gòu)涉及的任意區(qū)域都不會(huì)產(chǎn)生改變,我們就可以認(rèn)為第二種情況是第一種情況的置換后的結(jié)果。如果題目是唯一解的,則顯然對(duì)于這8個(gè)單元格而言就產(chǎn)生了兩種填法。而且嚴(yán)謹(jǐn)?shù)氖牵@里應(yīng)當(dāng)說(shuō)是至少兩種填法,因?yàn)檫@個(gè)結(jié)構(gòu)還可以逆時(shí)針輪換b9里的數(shù)字。所以形成了致命形式。
故第三種情況也會(huì)產(chǎn)生致命形式。所以三種情況全部矛盾,故4個(gè)數(shù)字的結(jié)構(gòu)依舊是一個(gè)致命結(jié)構(gòu)。
證明看起來(lái)很難受,但是實(shí)際上結(jié)構(gòu)很簡(jiǎn)單,我們這里把結(jié)構(gòu)羅列出來(lái)。


這兩種形式的致命結(jié)構(gòu)稱為探長(zhǎng)致命結(jié)構(gòu)(Borescoper's Deadly Pattern),由中國(guó)數(shù)獨(dú)玩家探長(zhǎng)發(fā)現(xiàn),并冠名該技巧。探長(zhǎng)就是之前提出毛刺毛邊理論的那個(gè)人。
另外需要啰嗦一下的是,這個(gè)技巧的結(jié)構(gòu)內(nèi)部的候選數(shù)是可以消失一些的,而消失的這些候選數(shù)并不影響結(jié)構(gòu)形成致命形式。這也是顯然的,因?yàn)榻Y(jié)構(gòu)本身的完整版是形成致命形式的,所以少掉一些情況,只是少一些填數(shù)方案,但我們說(shuō)過(guò),形成致命形式是客觀的,只要能發(fā)現(xiàn)一種填法使得形成致命形式,就必然存在與之互換的另外一種形式,所以它并不會(huì)影響到什么。
當(dāng)然了,消失一些候選數(shù)使得結(jié)構(gòu)直接被破解,出現(xiàn)排除或者唯一余數(shù)之類的技巧的話,這種情況就另說(shuō)了。
下面我們來(lái)講述一下,關(guān)于這兩種致命結(jié)構(gòu)的基本使用。
Part 3?三個(gè)數(shù)的探長(zhǎng)致命結(jié)構(gòu)
3-1?標(biāo)準(zhǔn)類型

如圖所示,我們尋找到一個(gè)三數(shù)的探長(zhǎng)致命結(jié)構(gòu),為了規(guī)避致命形式的出現(xiàn),所以r4c7 <> 459。
3-2?區(qū)塊類型

如圖所示。如果此時(shí)r15c3(6)均不存在的話,將使得結(jié)構(gòu)只有3、5、6,出現(xiàn)探長(zhǎng)致命結(jié)構(gòu)的致命形式。所以為了規(guī)避致命形式的出現(xiàn),r15c3(6)至少有一個(gè)是對(duì)的,所以構(gòu)成類似于區(qū)塊的形式,故r6c3 <> 6。
下面我們來(lái)看類型4的例子。
3-3?共軛對(duì)類型

如圖所示。發(fā)現(xiàn)c2包含一個(gè)數(shù)字6的共軛對(duì),并且剛好落腳點(diǎn)只能在可能是探長(zhǎng)致命結(jié)構(gòu)的格子r14c2上。假設(shè)此時(shí)r4c2填入4,那么由于共軛對(duì)的關(guān)系,剩下的唯一一個(gè)可以填入6的地方只有r1c2了。而剩下的格子r146c1和r46c4和r14c2會(huì)構(gòu)成一個(gè)三數(shù)探長(zhǎng)致命結(jié)構(gòu)的致命形式。因此,我們必須規(guī)避這種情況,因此r4c2 <> 4;同理,剩下兩個(gè)5也是一樣的刪數(shù)的道理。
下面我們?cè)賮?lái)看一個(gè)例子。

如圖所示。和前面的那個(gè)例子不同,這個(gè)例子包含兩個(gè)數(shù)字5和6是被標(biāo)注為橙色的。而標(biāo)注這些數(shù)字的格子一共有三個(gè)(即r4c78和r5c7)。和前面一則例子完全一樣的是,橙色數(shù)字在這個(gè)宮里只能填在橙色的格子里,而別的格子不能填。
如果其中任何一個(gè)格子里填入了數(shù)字3的話,那么剩下兩個(gè)格子可以放入5和6;而別的位置因?yàn)轭}目的約束,是無(wú)法填入5和6的。所以,5和6既然只能填入到剩余兩個(gè)格子里的話,那么必然就是一個(gè)5、一個(gè)6了。與此同時(shí),由于我們的假設(shè),剩下的一個(gè)格子是3,而把外側(cè)的r46c6和r3c78都算上的話,結(jié)構(gòu)構(gòu)成了三數(shù)探長(zhǎng)致命結(jié)構(gòu)的致命形式,因此我們需要規(guī)避。因此,最開(kāi)始的假設(shè)是不成立的,應(yīng)該刪除掉這個(gè)3。
和前面的例子相似,這個(gè)例子的數(shù)字也因?yàn)楸弧翱颉痹谶@個(gè)范圍里,所以我們算作類型4;但是這個(gè)5和6并不是所謂的共軛對(duì),5姑且可以算,但6不是,因?yàn)?占了三個(gè)格子的填數(shù)機(jī)會(huì)。
3-4?拓展類型

如圖所示,我們發(fā)現(xiàn),3和7都僅出現(xiàn)在r46c46里。如果b5里所有8也只放在這四個(gè)單元格里的話,那必然3、7、8就只可能出現(xiàn)在這其中的三個(gè)單元格里,但是通過(guò)之前的說(shuō)明里我們知道,不管怎么安放3、7、8,配合r46c3和r7c46的話,都必然形成關(guān)于3、7、8的致命形式,所以我們不得不刪除這些8。
可是,為什么要全都刪除呢?你可以反向思考這一點(diǎn)。b5里除了r46c46四個(gè)單元格外,還有五個(gè)單元格,這些單元格里必須得有一個(gè)8的出現(xiàn),所以很自然就可以去掉r46c46 的8了,因?yàn)閎5里一定會(huì)有8在這五個(gè)單元格里。
當(dāng)然,這個(gè)例子還有一個(gè)刪數(shù),是r1c5(8),是因?yàn)槲覀儎偛耪f(shuō)到的那五個(gè)單元格里,只有其中兩個(gè)單元格包含候選數(shù)8,而且它們恰好形成區(qū)塊,所以b5和c5上其余位置的8也可以刪除。
接下來(lái)我們來(lái)看一些嵌套該結(jié)構(gòu)的鏈的示例。
3-5?毛刺探長(zhǎng)致命結(jié)構(gòu)


來(lái)看一則用法比較靈活的毛刺。我們將r6c5(9)視作毛刺。當(dāng)它為假的時(shí)候,我們可以引出一條區(qū)塊不連續(xù)環(huán),刪數(shù)此時(shí)是r5c6(5)。不過(guò)毛刺為真的時(shí)候,我們一定有r6c5 = 9 => r5c6 = 1的邏輯。考慮反證法,假設(shè)r6c5(9)為真但r5c6 <> 1的話,b5里將產(chǎn)生1、5的隱性數(shù)對(duì),而與此同時(shí),由于r6c5(9)的占位,導(dǎo)致3、7、8全部擠入到r56c4里,導(dǎo)致必然有一個(gè)數(shù)填不進(jìn)去,出現(xiàn)矛盾。所以這個(gè)邏輯是對(duì)的。所以,我們就相當(dāng)于得到了:
r6c5(9)為假 => r5c6(1)為真;
r6c5(9)為真 => r5c6(1)為真。
所以r5c6(1)不論任何情況都為真,所以它為真。這一點(diǎn)很像是矛盾強(qiáng)制鏈里的思維,不過(guò)矛盾強(qiáng)制鏈?zhǔn)亲C否。
3-6?嵌套探長(zhǎng)致命結(jié)構(gòu)的動(dòng)態(tài)鏈

如圖所示。假設(shè)r78c3里不含有7,則{r2c56, r7c36, r8c356}將產(chǎn)生一個(gè)疑似探長(zhǎng)致命結(jié)構(gòu)的形式。我們此時(shí)分兩種情況討論。
如果此時(shí)r2c56(9)為真,則r2c9(9)為假,此時(shí)觀察{r2c89, r9c8}三個(gè)單元格,如果r9c8(7)也不存在的話,那所有數(shù)字都不跨區(qū),三個(gè)單元格只含有兩種不同的數(shù)字,將無(wú)法填滿,產(chǎn)生矛盾,故r9c8(7)必然為真才行;
如果此時(shí)r7c6(3)為真,則r7c9(3)為假,于是觀察{r1c9, r2c89, r7c9, r9c8}五個(gè)單元格,如果此時(shí)r9c8(7)為假的話,此時(shí)里面不含有重復(fù)的數(shù)字,而且每一個(gè)數(shù)字都不再跨區(qū),五個(gè)單元格填不滿,所以會(huì)矛盾,所以r9c8(7)為真。
顯然,上述兩種情況里至少有一個(gè)是為真的,否則都為假,而r78c3(7)為假,此時(shí){r2c56, r7c36, r8c356}七個(gè)單元格將只有1、6、8,形成探長(zhǎng)致命結(jié)構(gòu)的致命形式。所以必須保證至少有一個(gè)情況成立,但最終它們的結(jié)果都是r9c8(7)為真。所以這個(gè)鏈的整體思路就是設(shè)r78c3(7)為假時(shí)一定有r9c8(7)為真,故刪除頭尾的交集,即r9c123(7)。
不過(guò),這個(gè)題目UR比較多,實(shí)際上圖里還有一個(gè)UR的毛刺刪數(shù),和一個(gè)UR的數(shù)組類型,你可以找找看,雖然題目里的UR跟這里的探長(zhǎng)致命結(jié)構(gòu)沒(méi)有什么特別的關(guān)系……
Part 4?四個(gè)數(shù)的探長(zhǎng)致命結(jié)構(gòu)
接下來(lái)我們來(lái)看一些四數(shù)的探長(zhǎng)致命結(jié)構(gòu)。
4-1?標(biāo)準(zhǔn)類型

如圖所示,當(dāng)r6c8(4)為假時(shí),將使得{r12c278, r6c78}產(chǎn)生四數(shù)探長(zhǎng)致命結(jié)構(gòu)的致命形式,所以r6c8 = 4,刪掉其余的候選數(shù)。
4-2?區(qū)塊類型

如圖所示,如果讓r45c89(5)全部消失,則{r45c389, r9c89}形成關(guān)于2、3、4、7的致命形式,所以r45c89(5)至少有一個(gè)是對(duì)的,那么刪除b6其余位置的5。
4-3?共軛對(duì)類型
再來(lái)看一個(gè)類型4。

如圖所示。我們發(fā)現(xiàn)r2上,關(guān)于數(shù)字4和6都只能放在r2c469里。倘若我們使得這三個(gè)格子里出現(xiàn)數(shù)字3的話,那么由于剩下只有兩個(gè)格子的關(guān)系,那么剩余的兩個(gè)格子自然就自動(dòng)成為了隱性數(shù)對(duì)。于是,跟著其它的r3c469和r8c46的話,結(jié)構(gòu)就變成了四數(shù)探長(zhǎng)致命結(jié)構(gòu)的致命形式。因此,我們?yōu)榱艘?guī)避此情況的發(fā)生,我們不能讓r2c469里有填入3的任何情況。因此,r2c469里所有候選數(shù)3均可刪除。
這個(gè)例子因?yàn)橛玫氖穷愋?的邏輯,所以我們歸類為類型4;只是說(shuō),這里的6和9并不叫共軛對(duì),因?yàn)樗剂巳齻€(gè)位置了;但是,因?yàn)檫壿嫼驮綰R里的類型4一樣,所以歸于這個(gè)類型。
4-4?其它類型

如圖所示。當(dāng)r1c57(4)去掉后,結(jié)構(gòu)變?yōu)橐粋€(gè)只帶三個(gè)數(shù),但在b3占了四個(gè)單元格的探長(zhǎng)致命結(jié)構(gòu)??梢园l(fā)現(xiàn),這種結(jié)構(gòu)實(shí)際上就類似于之前講到的三數(shù)探長(zhǎng)致命結(jié)構(gòu)的進(jìn)階類型:b3里任取r12c78的其中三個(gè)單元格,結(jié)構(gòu)就一定出現(xiàn)致命形式。所以這個(gè)題也一樣。我們?nèi)稳∑渲腥齻€(gè)單元格,都會(huì)保證里面出現(xiàn)一個(gè)數(shù)字7,而這個(gè)數(shù)字7一定是對(duì)的,否則結(jié)構(gòu)必然出現(xiàn)關(guān)于5、6、8的致命形式,所以可以刪除的是這個(gè)7區(qū)塊對(duì)應(yīng)的r1和b3的其余位置的7;而顯然,4在r1的其余位置也可以刪除,否則結(jié)構(gòu)只有5、6、7、8,必然形成致命形式。