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

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

第 71 講:試數(shù)

2021-11-02 01:16 作者:SunnieShine  | 我要投稿

從此處開(kāi)始,我們將開(kāi)始闡述最后一個(gè)數(shù)獨(dú)技巧的理論部分:沒(méi)辦法的辦法(Last Resort)。它們一般是在學(xué)習(xí)的技巧都無(wú)法完成解題后,產(chǎn)生的一大數(shù)獨(dú)技巧。它們一般毫無(wú)邏輯可言,或者說(shuō)邏輯層面來(lái)講,不適合人腦的思維和觀察,諸如后續(xù)會(huì)介紹到的回溯法(Backtracking for Sudoku)。不過(guò),這一類(lèi)題目在比賽和其他的很多時(shí)候,使用起來(lái)可能比起相對(duì)于人腦可接受的邏輯技巧而言要好使一些,所以也受到競(jìng)賽流派的玩家喜愛(ài)。

當(dāng)然了,這類(lèi)技巧的使用與否,取決于你的目的。如果你只是為了完成題目呢,就不用過(guò)于在意技巧;而如果你想享受做題的過(guò)程,請(qǐng)盡量使用邏輯層面的技巧來(lái)解題。

Part 1?使用邏輯

我們要闡述一種無(wú)邏輯技巧:試數(shù)法(Bowman's Bingo)。它的使用比較輕松。

1-1?類(lèi)似于鏈的基礎(chǔ)使用方式

如圖所示,我們隨意設(shè)定一點(diǎn)的填數(shù)為真,比如這里設(shè)定r4c2 = 2為真,然后順次可以發(fā)現(xiàn)r6c3 = 8、r6c9 = 5、然后使用r6c9 = 5對(duì)r3作排除,可以得到r4c6 = 5,然后對(duì)r5作排除,得到r5c1 = 5,于是r5內(nèi)只有r5c2可以填3,于是r5c2 = 3。

隨機(jī)發(fā)現(xiàn)c2,發(fā)現(xiàn)c2內(nèi)1沒(méi)有填數(shù)位置了。所以矛盾,因此最開(kāi)始的假設(shè)是錯(cuò)誤的,即應(yīng)當(dāng)是r4c2 <> 2。

這一幅圖,是剛才的試數(shù)的填數(shù)顯示過(guò)程,你可以仔細(xì)看一下。

我們?cè)賮?lái)看一則示例。

1-2?帶有技巧結(jié)構(gòu)的試數(shù)推導(dǎo)過(guò)程

如圖所示,我們嘗試假設(shè)r1c8 = 5,就會(huì)順著箭頭發(fā)現(xiàn)3、4、9的三數(shù)組結(jié)構(gòu),由于r1c8 = 5和三數(shù)組的關(guān)系,r3c8不能再放下5和3、4,所以r3c8只能填入8。

接著我們繼續(xù)向下試數(shù)。得到r3c8 = 8后,我們就會(huì)按照箭頭依次得到r3c4 = 6、r4c4 = 2,于是r4c89構(gòu)成3、4的顯性數(shù)對(duì)。

此時(shí)配合最初的三數(shù)組就可以發(fā)現(xiàn),此時(shí)四個(gè)單元格只有3、4、9三種候選數(shù),顯然是不夠填的,所以出現(xiàn)矛盾,故原本的假設(shè)錯(cuò)誤,即r1c8 <> 5。

1-3 試數(shù)UR

下面我們來(lái)看看試數(shù)的UR結(jié)構(gòu)。

如左圖所示,我們假設(shè)r3c9 = 5,則r3c8 = 2,于是根據(jù)兩個(gè)填數(shù)結(jié)論共同得到r3c2 = 4,于是r2c2 = 5。此時(shí)觀察b2,發(fā)現(xiàn)b2此時(shí)只有r1c5可以放4,所以r1c5 = 4,于是根據(jù)r1c5和r3c2都填入的4得到b3的4的位置只能在r2c9。你也可以結(jié)合右圖的推導(dǎo)過(guò)程來(lái)進(jìn)行分析。

但發(fā)現(xiàn),由于假設(shè)r3c9 = 5,得到了r23c29構(gòu)成了關(guān)于4和5的UR的致命形式,所以假設(shè)錯(cuò)誤,故r3c9 <> 5。

這一則示例是配合了試數(shù)和直推的邏輯進(jìn)行UR的論證,所以稱(chēng)為試數(shù)UR。

Part 2 試數(shù)轉(zhuǎn)鏈

當(dāng)然了,有一部分簡(jiǎn)單的試數(shù)法,可以修改為鏈寫(xiě)法。

如圖所示,這就是剛才的試數(shù)法的鏈寫(xiě)法??梢钥吹降氖?,實(shí)際上它被轉(zhuǎn)換為了一個(gè)不連續(xù)環(huán)。不過(guò)第二則示例想要改成試數(shù),就有點(diǎn)棘手了:因?yàn)榧僭O(shè)r1c8 = 5的時(shí)候,需要借用這個(gè)假設(shè)才能得到r3c8的填數(shù)結(jié)論,相當(dāng)于多出了一個(gè)分支,但分支不長(zhǎng)。如果畫(huà)成動(dòng)態(tài)鏈,會(huì)有些“小題大做”。

Part 3 鏈和試數(shù)的異同

很多人在看了鏈這種技巧之后,發(fā)現(xiàn)它越發(fā)是試數(shù),于是就有讀者會(huì)考慮,鏈?zhǔn)遣皇蔷褪且环N特殊的試數(shù)過(guò)程呢?其實(shí)不然。

我們回顧一下試數(shù)的過(guò)程:試數(shù)是隨機(jī)找點(diǎn),假設(shè)為真,然后一格一格向單元格內(nèi)推導(dǎo)填數(shù),最終發(fā)現(xiàn)類(lèi)似于“同一區(qū)域內(nèi)有相同的數(shù)字出現(xiàn)”、“同一區(qū)域內(nèi)沒(méi)有某個(gè)數(shù)字可以填入”、“某一個(gè)單元格沒(méi)有數(shù)字可填”、“某一個(gè)單元格同時(shí)填入兩個(gè)數(shù)”之類(lèi)的矛盾,從而推翻原定假設(shè)的過(guò)程。

我們?cè)倩仡櫼幌骆湹倪^(guò)程:鏈也是隨機(jī)找點(diǎn),假設(shè)為假,然后按照真假性依次推理(注意,鏈的中途是可以插入其他技巧的,相鄰的節(jié)點(diǎn)可以同真假,并且是以候選數(shù)為單位),最終得到某個(gè)相同的數(shù)為真,或者是同一區(qū)域下的另外一個(gè)數(shù)為真,從而刪除頭尾的交集的過(guò)程。

它們相同點(diǎn)在于,試數(shù)和鏈都使用真假來(lái)推導(dǎo),而不同的是,試數(shù)可以發(fā)散尋找。也就是說(shuō),試數(shù)在某個(gè)情況下,不僅只按照“一條路試到尾”的過(guò)程,還可以按照兩個(gè)甚至多個(gè)方向試數(shù),在方向上靈活性很強(qiáng);而鏈雖然有動(dòng)態(tài)鏈形式,但鏈最初的結(jié)構(gòu),僅僅只是為了一個(gè)方向上進(jìn)行假設(shè)和推導(dǎo)的。但是,由于鏈的節(jié)點(diǎn)是以候選數(shù)為單位的,所以推導(dǎo)的時(shí)候必然可以非常靈活。任意兩個(gè)節(jié)點(diǎn)可以同真、同假或是一真一假。

試數(shù)的過(guò)程可以任意進(jìn)行擴(kuò)散,但如果題目稍難,試數(shù)就變得非常困難和復(fù)雜。而且,目前在出題層面上,有一種消去后門(mén)機(jī)制(Backdoor Deletion),可以去掉里面稱(chēng)為“后門(mén)”的東西,防止題目在找到這樣的“后門(mén)”后,使得題目大大降低難度。而鏈就很好地避免了這一點(diǎn)。鏈?zhǔn)呛蜻x數(shù)層面的推導(dǎo),只要避免“后門(mén)”出現(xiàn)在某種技巧的刪數(shù)結(jié)論下,就完全可以避免試數(shù)成功。

之所以產(chǎn)生動(dòng)態(tài)鏈,是因?yàn)樵阪湹耐茖?dǎo)過(guò)程之中,一個(gè)方向上的推導(dǎo)已經(jīng)無(wú)法完整得到刪數(shù)了,此時(shí)將借助兩個(gè)、甚至多個(gè)方向上的情況來(lái)導(dǎo)致矛盾。所以,強(qiáng)制鏈、動(dòng)態(tài)鏈都不是試數(shù)。但是,試數(shù)和鏈?zhǔn)强梢缘葍r(jià)轉(zhuǎn)化的。這也就是說(shuō),鏈可以轉(zhuǎn)化為試數(shù)過(guò)程;而試數(shù),也可以轉(zhuǎn)化為鏈的寫(xiě)法??蛇@并不代表它們就是一個(gè)東西,推導(dǎo)層面、方式和證明手段的不同就決定了兩種東西的本質(zhì)區(qū)別。

鏈非常容易觀察。因?yàn)殒湹膹?qiáng)弱關(guān)系決定了兩個(gè)數(shù)字之間具有什么樣的位置關(guān)系和填數(shù)關(guān)系,畢竟鏈?zhǔn)且粭l路到頭的推導(dǎo)。

最后,在計(jì)算機(jī)編程過(guò)程之中,這樣的試數(shù)過(guò)程會(huì)被簡(jiǎn)化為從r1c1開(kāi)始按從左到右、從上到下的順序依次試數(shù),直到推導(dǎo)出矛盾之后,原假設(shè)為假。這樣的過(guò)程稱(chēng)之為回溯法(Backtracking),有些地方也被稱(chēng)為阿里阿德涅之線(xiàn)(Ariadne's Thread)。我們之后會(huì)介紹到。

后門(mén)分兩種,一種是魔術(shù)格(Magic Cell),指的是數(shù)獨(dú)盤(pán)面里,如果得到某單元格的填數(shù),就能把一道難題的難度大幅度降低,那么這個(gè)單元格就叫做魔術(shù)格;另外一種,則是針對(duì)于候選數(shù)層面的“魔術(shù)候選數(shù)”,不過(guò)這個(gè)說(shuō)法類(lèi)比于魔術(shù)格可以理解:如果某個(gè)候選數(shù)的真假結(jié)論被得到,就能大幅度降低題目的難度的話(huà),那么這個(gè)候選數(shù)就可以稱(chēng)為所謂的“魔術(shù)候選數(shù)”。不過(guò)術(shù)語(yǔ)里并沒(méi)有這個(gè)詞,只是用于類(lèi)比和描述它罷了。

Part 4?帶有試數(shù)思想的鏈

當(dāng)然了,因?yàn)樵嚁?shù)比起鏈來(lái)說(shuō),要好觀察一些,所以這樣的思想往往還被用于鏈之中。

如圖所示,我們不標(biāo)注出鏈的寫(xiě)法。這里簡(jiǎn)單闡述一下邏輯。

我們?cè)O(shè)定鏈頭r8c9 <> 2,于是可以得到r78c9的7、9數(shù)對(duì),于是得到r1c9只能填8,于是r1c4 = 1;于是r4c4 <> 1后,發(fā)現(xiàn)r4出現(xiàn)2、3、6、7的四數(shù)組結(jié)構(gòu)。所以r4c8 = 1。

而剛才試數(shù)的過(guò)程之中,我們得到了r1c9 = 8,并且由于r4c8 = 1,所以r3c8不能填1、不能填8、只能填2,所以我們就得到了r8c9 <> 2時(shí),r3c8 = 2,于是形成思路鏈條,刪掉它們兩格的交集的2,圖中即r23c9和r9c8的2,都是可以刪掉的。

這樣的思維,基本的邏輯是鏈的假設(shè),在中間插入了試數(shù)的風(fēng)格,所以稱(chēng)為帶有試數(shù)思想的鏈;當(dāng)然了,反過(guò)來(lái)就稱(chēng)為帶有鏈思想的試數(shù)法,不過(guò)我們就不作出介紹了。


第 71 講:試數(shù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
双峰县| 景谷| 马尔康县| 修水县| 信阳市| 浏阳市| 安陆市| 丹阳市| 专栏| 岳池县| 唐河县| 周宁县| 锡林浩特市| 车致| 盐边县| 浦城县| 荃湾区| 安化县| 鄂托克前旗| 抚远县| 湄潭县| 东海县| 当雄县| 江源县| 德阳市| 万山特区| 石狮市| 安宁市| 白玉县| 额济纳旗| 临澧县| 泽普县| 东乌珠穆沁旗| 普定县| 玉林市| 班玛县| 扬州市| 内乡县| 芦溪县| 巴南区| 那曲县|