数独技巧——唯一矩形排除法的几种情况
唯一矩形排除法的幾種情況
詳細解說參見:http://www.sudopedia.org/wiki/Uniqueness_Test (英文)
在進行游戲的時候,在矩形排除觀察之前,應該先使用數對法進行一次排除。 以下7種類型的唯一矩形,對第六種和第七種都還不是很明白是怎么推的,等弄明白后再說明是如何得出論斷的
第一種情況
Type 1 Unique Rectangle
組成矩形的四個方塊內,都由候選數xy組成,但是其中一個多了一個一個候選數z,則該數格就必然是z。
這是因為倘若該格不是z的話,則四個方格都由xy組成,形成多解,所以該格必然是z。
第二種情況
Type 2 Unique Rectangle
由xy組成的矩形上,倘若在其中一邊的兩個數格還都有另外一個候選數z,則這兩個數格必有其中一個為z(倘若兩個都不是z,又要出現多解?。?
所以在這兩個數格所在的house(行/列/塊)里必定不能再出現z
第三種情況
Type 3 Unique Rectangle
跟第二種情況類似,但是這兩個數格內不是同一個候選數,而是候選數a,b。此時可以把這兩個數格看做一個只含有候選數a和b的數格,它可以與house內的另外的數格一起組成顯式數集,從而排除其他數格里的候選數
第四種情況
Type 4 Unique Rectangle
這又是第三種情況的另外一種特例。假設a和b所在行/列里,別的數格里不包含x,則在xya,xyb這兩個數格里,必然包含有a或b以及x,所以必然不包含y!
第五種情況
Type 5 Unique Rectangle
這種矩形應該很少遇到,四個數格里,有三個是含候選數xyz,只有一個是含候選數xy,并且四個數格是分布在兩個宮格(Box)里。此時,對于同時在三個含 z數格的house里的數格,可以排除候選數z。這個推理其實也很簡單,因為三個z必然有一個為真(即該格就是數字z),無論哪一個為z,對于可以同時與這三個數格在同一個house的數格(最多兩個,與其中兩個z在一個box內)
第六種情況
Type 6 Unique Rectangle
這種矩形要求四個格都含有xy,且其中在兩行兩列上x只出現在這兩個數格里(實際上只要x在行列上形成強鏈即可推論),且在四個方格的存在對角是xy的情況,則另外兩個對角必然不是x。
推理如下:
首先為了避免出現多解的情況,這四個方格中,一定會有一個非xy的候選數
假定其中一個有額外候選數的數格是x,那么同邊的數格就肯定沒有x,于是對角數格肯定就是x(因為這兩個x是強鏈),所以對角方格必然不能是非xy的候選數,這顯然違背了四個方格肯定有一個非xy候選數的推論矛盾,所以這個假設是錯誤的。也就是說這個假定是x的數格肯定不能是x。
反方向也是同樣的推理過程!
第七種情況
Hidden Unique Rectangle
假設我們有一個A,B,C,D數格組成的矩形,A和D在對角,B和C在對角,且AB或BD在同一個BOX里,且他們各自的候選數滿足這樣的情況: A為ab,B為abx,C為aby,D為abz,其中x,y表示1個以上的候選數,z表示0個以上的候選數xyz可以存在相同的候選數。假定在B和D共同的house里,候選數a只在B和D出現,C和D的共同的house里,a也只在C和D出現,這個時候我們就可以從D里排除候選數b 觀察上圖,可以在行1行2和列2列6(即r1c26,r2c26)發現Hidden Unique Rectangle,候選數4在第二行和第六列沒有在其余第數格出現,且r1c2只有4和8,所以可以從r2c6排除8 在上例中,A是r1c2,B和C是r1c6和r2c2,D是r2c6,a是4,b是8,x和y是3和9,z是2
推理如下:
首先為了避免出現多解的情況,這四個方格中,一定會有一個非ab的候選數
假定D方格內的數字為b,則D方格不能是a,則B和C里的a因為與D的a是強連接,所以B和C里就一定是a,這就使得在A,B,C,D里不會出現非ab的情況,這顯然與之前的推論矛盾,所以D方格不能有數字b
下圖是z表示無候選數的情況
http://code.google.com/p/klsudoku
Email: ttylikl@qq.com
QQ群:106249 ( Sudoku 群)
QQ群:94388010( C++ 群)
總結
以上是生活随笔為你收集整理的数独技巧——唯一矩形排除法的几种情况的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Bootstrap框架
- 下一篇: 机器学习实战(五)——Logistic