那么 Sue de Coq 怎么觀察呢?
在上一個(gè)文章里,我們完成了 SdC 技巧的學(xué)習(xí),今天我們來(lái)看下這個(gè)技巧的觀察。哦對(duì),Sud de Coq 簡(jiǎn)稱(chēng) SdC,也有簡(jiǎn)稱(chēng) SDC 的(de 在法語(yǔ)里相當(dāng)于 of,是一個(gè)虛詞,所以不大寫(xiě),所以一般簡(jiǎn)寫(xiě)為?SdC)。
最開(kāi)始,我對(duì) SdC 技巧是出于放棄的態(tài)度的,因?yàn)檫@個(gè)技巧特別不好觀察,就像別人經(jīng)常問(wèn)我的問(wèn)題那樣:SdC 憑什么你就能選擇上這些單元格,它們剛好不多不少就夠推理呢?這里我們來(lái)介紹一下它到底怎么觀察。
Part 1 三部曲

還是拿上一回的圖來(lái)看。這個(gè)技巧的所有示例都可以發(fā)現(xiàn)一個(gè)通性(這里就給這一個(gè)圖給你做對(duì)照):這個(gè)結(jié)構(gòu)的所有單元格,你最少只需要找到兩個(gè)區(qū)域,可以把它們?nèi)蚱饋?lái)。舉個(gè)例子來(lái)說(shuō),這個(gè)圖里我們可以找到7列和3宮這樣兩個(gè)區(qū)域,所有4個(gè)單元格都在這兩個(gè)區(qū)域里。就是這個(gè)意思;而且,找到的這兩個(gè)區(qū)域必然是一個(gè)行或者列,還有另外一個(gè)必然是宮。比如這個(gè)例子7列和3宮剛好是一列和一宮。這只是第一個(gè)要滿足的。
第二點(diǎn):我們剛剛不是找到了兩個(gè)區(qū)域嗎?這兩個(gè)區(qū)域的交集上涉及的單元格的候選數(shù)種類(lèi)數(shù)和涉及的單元格的關(guān)系是至少差2的。不是很好懂就看這個(gè)例子。整個(gè)結(jié)構(gòu)涉及的7列和3宮的交集是r13c7(第1、3行第7列)兩個(gè)單元格。里面涉及的候選數(shù)一共有3、4、7、8一共四種。四種數(shù)字和兩個(gè)單元格一共是差2的。這一點(diǎn)先記著,我稍后會(huì)作說(shuō)明。
第三點(diǎn)自然就是技巧本身就要滿足的不跨區(qū)出現(xiàn)了:所有涉及的單元格里所有的候選數(shù),每一個(gè)數(shù)字都能找到一個(gè)區(qū)域,把它們?nèi)蚱饋?lái)(這也叫不跨區(qū))。而第四點(diǎn)也就是最后的壓軸要求:數(shù)字種類(lèi)數(shù)要等于涉及的單元格總數(shù)。
只要滿足這4點(diǎn)要求,就算是找到了。下面我們來(lái)對(duì) SdC 一點(diǎn)一點(diǎn)說(shuō)明,具體的觀察流程。
Part 2 觀察步驟
下面我來(lái)對(duì)上面4點(diǎn)作出說(shuō)明,并說(shuō)明如何觀察 SdC 技巧。
觀察第一階段:全盤(pán)一共有54個(gè)“交集區(qū)”(一共18個(gè)行/列,每一個(gè)行/列一共有3個(gè)不同方向的交集,所以有54個(gè)),我們挨個(gè)去看這些交集區(qū),看有沒(méi)有滿足前面第二點(diǎn)要求(至少差 2 那個(gè))的單元格序列。如果有,那么第一步就算完成了;當(dāng)然了,如果這個(gè)交集里只有一個(gè)單元格是空格,或者根本沒(méi)有空格,那么我們就可以很安心地跳過(guò)不看了。

比如我們來(lái)看,這個(gè)例子,如果我們隨便取一共位置,例如r78c4。首先我們可以很清楚地知道,r78c4是處于4列和8宮兩個(gè)區(qū)域的交集處的,所以Part 1里提及的第一點(diǎn)要求是滿足的;不過(guò)第二點(diǎn)不滿足:這兩個(gè)單元格涉及的是2、6、9三種不同的數(shù)值,它們是差1的,而沒(méi)有達(dá)到至少差2的門(mén)檻。
再比如r7c12,一共兩個(gè)單元格,它們同時(shí)處于7行和7宮的交集上,所以第一點(diǎn)滿足;第二點(diǎn)也滿足:兩個(gè)單元格里面涉及了1、2、3、6、8五種數(shù)字,它們是差3的,也算是至少差2的。
要想是一個(gè)行/列和一個(gè)宮的交集上,那么最多只可以涉及到3個(gè)不同的單元格。也就是說(shuō),你找到的交集上最多可以有3個(gè)單元格,而并不一定是像前文推導(dǎo)的那樣,以后找 SdC 的時(shí)候只去看兩個(gè)單元格。

比如這個(gè)例子,交集r789c3三個(gè)單元格一共涉及了1、2、4、6、9五種不同的數(shù)字,依舊是滿足至少差2的關(guān)系的。
但對(duì)于前面的這個(gè)例子,好像看起來(lái)r9c789一共是三個(gè)單元格,且都用了。不過(guò)我們不是這么看的:r9c89才是整個(gè)結(jié)構(gòu)的交集。因?yàn)閺那懊娴倪壿嬐评砜梢灾?,?shí)際上r9c7雖然在交集上,但它實(shí)際是屬于橙色數(shù)字2、3、8所在宮的這一部分單元格的,而最終的刪數(shù)是確定在9宮里。也就是說(shuō),實(shí)際上這個(gè)r9c7是為了保證結(jié)構(gòu)數(shù)字足夠推理才用上的單元格,它并沒(méi)有被認(rèn)為是處于交集上面:如果這個(gè)r9c7我們不看的話,結(jié)構(gòu)涉及的所有數(shù)字一共有5種,但一共只有4個(gè)單元格,是不能保證推理有效的,因?yàn)閺耐评淼倪^(guò)程角度來(lái)說(shuō),數(shù)字種類(lèi)數(shù)必須等于涉及的單元格總數(shù)是滿足 SdC 的要點(diǎn)之一。
觀察第二階段:當(dāng)我們已經(jīng)通過(guò)第一階段的驗(yàn)證后,我們就需要在剛剛涉及的那兩個(gè)區(qū)域里去找合適的單元格了。為了保證推理的有效性,我們得盡量去找不涉及其他數(shù)字的單元格。

舉個(gè)例子。還是這個(gè)例子。如果我們已經(jīng)發(fā)現(xiàn)到r13c7了,那么我們就進(jìn)入第二階段。現(xiàn)在我們?nèi)?列和3宮找其它的空格。找的這些空格涉及的數(shù)字盡量不要有除了剛才交集出現(xiàn)的其它數(shù)字。比如r13c7此時(shí)是只有3、4、7、8的,那么我們?cè)趦蓚?cè)找的單元格最好不要有3、4、7、8以外的其它數(shù)字??梢院茌p松地發(fā)現(xiàn),r6c7只有4和7,恰好是3、4、7、8的一部分,我們就可以直接作為結(jié)構(gòu)的一部分取出來(lái)了;既然7列已經(jīng)選中了單元格,那我們就不必再在7列其它地方上再找單元格了:因?yàn)槲覀円?和7在7列出現(xiàn)的情況已經(jīng)達(dá)到“飽和”;此時(shí)我們只需要去找3宮,看有沒(méi)有只有3和8的單元格。
運(yùn)氣非常好,我們發(fā)現(xiàn)了只有3和8的單元格。于是 SdC 就直接成立了:因?yàn)榈谌c(diǎn)和第四點(diǎn)此時(shí)我們已經(jīng)不用去驗(yàn)證了:第三點(diǎn)要求(不跨區(qū))是在我們找數(shù)字的時(shí)候就已經(jīng)約束了的;而第四點(diǎn)(總數(shù)相等)也不必看了:交集兩個(gè)單元格+7列取出的一個(gè)單元格+3宮取出的一個(gè)單元格,一共4個(gè)單元格。不同數(shù)字種類(lèi)數(shù)也是4。
再來(lái)看后面這個(gè)例子:

這個(gè)例子稍微復(fù)雜一點(diǎn),不過(guò)依舊這么去看。我們先找到交集r9c89。然后我們就去行上找1、2、3、6、8。我們發(fā)現(xiàn)其中一側(cè)只有1和6,那么另外一側(cè)我們就需要找的數(shù)字是2、3、8。而現(xiàn)在已經(jīng)取出了r9c389一共三個(gè)單元格了,所以我們下一步要在9宮里找5-3=2個(gè)單元格,且這兩個(gè)單元格里只能出現(xiàn)2、3、8。
果不其然,r89c7滿足要求。所以 SdC 成立。
Part 3 非常難找到的例子

如圖所示,這個(gè)例子非常難找到,不過(guò)它確實(shí)不滿足前面兩個(gè)階段的找法。我們確實(shí)滿足了第一階段的要求,找到了r12c1是滿足差2要求的;但第二點(diǎn)我們?cè)趺粗颊也坏?,因?yàn)槔锩娉霈F(xiàn)的數(shù)字2、3、4、5、6、8實(shí)在是太多了……我們?nèi)绻谄渲幸粋?cè)定好了要找的數(shù)字后,我們另外一側(cè)就得找其它的所有數(shù)字。
比如這個(gè)題,按照基本的找法是確定2和4。但是發(fā)現(xiàn),1宮并沒(méi)有只有2和4的單元格,所以第二階段我們無(wú)從下手。不過(guò)別急,這里我們就要提第三階段了。
觀察第三階段:如果第二階段無(wú)法解決的,我們就嘗試去延伸單元格。比如這個(gè)題目里,2和4本來(lái)需要一個(gè)單元格就足夠了(這里思考一下為什么2和4只需要一個(gè)單元格,而不是2個(gè),而不是3個(gè)甚至更多),但是確實(shí)找不到這樣的單元格。于是我們就去找1宮里所有2和4涉及的單元格(r12c1我們這里就不說(shuō)了,剩下的還有r1c23)。那么r1c23有個(gè)奇妙的地方是,它們都只多了一個(gè)7出來(lái),沒(méi)多別的數(shù)字。如果我們把7也吸納到結(jié)構(gòu)里的話,那么我們就可以認(rèn)為,2、4、7是在1宮里出現(xiàn)的數(shù)字了,那么剩下的1列就需要找到的數(shù)字就不能有2、4、7,而只能是3、5、6、8。當(dāng)然了,前面說(shuō)可以加格子,那么涉及的數(shù)字甚至可以含有1和9。
實(shí)際上這個(gè)例子確實(shí)是這樣的:我們找到了r35789c1,里面涉及的數(shù)字甚至把1和9這個(gè)局外數(shù)字也算進(jìn)來(lái)了。
數(shù)一下總單元格數(shù):r35789c1(5個(gè)單元格)+r12c1(交集兩個(gè)單元格)+r1c23(兩個(gè)單元格)=出現(xiàn)的數(shù)字種類(lèi)數(shù)(1、2、3、4、5、6、7、8、9一共9種,全齊了)。剛好滿足等式要求。跨區(qū)我們也在前面第二和第三階段里保證了,所以,SdC 是成立的。
這便是 SdC 的觀察方式,我不知道你們看懂了幾成內(nèi)容。不過(guò)我相信,今天不懂沒(méi)關(guān)系,隔一段時(shí)間,自己功力提升了再來(lái)看,就會(huì)明白不少;然后再隔一段時(shí)間來(lái)看,基本上就能搞定了。
Part 4 自噬 SdC 呢?為啥沒(méi)提到?

實(shí)際上很對(duì)不起大家的是,自噬 SdC 在基本的 SdC 的要求上加了一點(diǎn):所有涉及的數(shù)字里有一個(gè)數(shù)要在兩側(cè)出現(xiàn)兩次(也就是說(shuō)要跨區(qū))。這個(gè)數(shù)字是唯一的,比如這個(gè)例子里,數(shù)字8是唯一結(jié)構(gòu)里所有數(shù)字里跨了區(qū)的那個(gè)。還記得跨區(qū)的定義吧:我們能找到一個(gè)區(qū)域,把結(jié)構(gòu)里涉及的所有這個(gè)數(shù)字全框起來(lái),那么這個(gè)數(shù)就不叫跨區(qū)(換一種說(shuō)法就是,這個(gè)數(shù)只在這個(gè)區(qū)域里出現(xiàn)了)。
基本觀察思路完全一致,但只有一個(gè)地方變了:那個(gè)等式兩邊現(xiàn)在不相等了,而實(shí)際上,單元格數(shù)要比數(shù)字種類(lèi)數(shù)要多1個(gè)。比如這個(gè)題用了8個(gè)單元格,但出現(xiàn)的總數(shù)字?jǐn)?shù)只有7種,8是跨區(qū)的所以實(shí)際上要算兩次才能相等,所以等式變成不等式了!