應(yīng)用前幾期介紹的基礎(chǔ)算法已經(jīng)不能得出首解的時候,怎么辦?
我們試著解一下圖1中的這道題。
先看第一宮,因為R8C3=1,所以R(1,2,3)C3≠1,那么空格R1C1和空格R1C2的值必然有一個為1,即R1C(1,2)=1。
在標準數(shù)獨中,若干個空格組合的性質(zhì)能對其他空格的取值產(chǎn)生影響,我們就稱這些空格構(gòu)成了區(qū)塊。
例如,因為R1C(1,2)=1,空格R1C1和空格R1C2就構(gòu)成了一個區(qū)塊,這個區(qū)塊的存在,使第一行中其他格的數(shù)字不可能是1。
這種根據(jù)區(qū)塊的性質(zhì)進行數(shù)字排除的方法就是區(qū)塊排除法。區(qū)塊排除法是排除法的進階應(yīng)用。
下面對圖1中的例題逐步求解。
第1步:應(yīng)用區(qū)塊排除法,R1C(1,2)=1,第二宮的R2C6=1,如圖2。
取得首解后,馬上就會有柳暗花明又一村的感覺,可以繼續(xù)逐步求解,如圖3。
第2步:應(yīng)用列排除法,第六列的R7C6=2。
第3步:應(yīng)用宮排除法,第八宮的R7C5=8。
第4步:應(yīng)用宮排除法,第八宮的R9C5=1。
第5步:應(yīng)用宮排除法,第九宮的R7C7=1。
第6步:應(yīng)用區(qū)塊排除法,R1C(1,2)=1,第三宮的R3C9=1,如圖4。
第7步:應(yīng)用列排除法,第九列的R6C9=9。
第8步:應(yīng)用宮排除法,第三宮的R3C7=9。
第9步:應(yīng)用余數(shù)唯一法,點算,R4C7=5。
第10步:cZPc8SLw66NrBufkC1bBdQ==應(yīng)用區(qū)塊排除法,R8C(4,5)=9,第七宮的R7C3=9。
第11步:應(yīng)用行排除法,第四行的R4C2=9。
第12步:應(yīng)用行排除法,第四行的R4C1=1。
第13步:應(yīng)用宮排除法,第一宮的R1C2=1。
第14步:應(yīng)用宮排除法,第五宮的 R5C4=9。
第15步:應(yīng)用宮排除法,第八宮的R8C5=9。
第16步:應(yīng)用宮排除法,第六宮的R6C8=8。
第17步:應(yīng)用區(qū)塊排除法,R(1,2,3)C3=8,第四宮的R5C2=8。
余下空格的數(shù)字應(yīng)用基礎(chǔ)算法均可以得出解,不再贅述。
上面例題中的區(qū)塊是由排除法形成的,這種方法形成的區(qū)塊更容易被發(fā)現(xiàn)。此外,通過余數(shù)法也可以形成區(qū)塊。區(qū)塊中的格有兩個或三個,并且都是同行或同列,這樣形態(tài)的區(qū)塊更容易應(yīng)用。
下面試著挑戰(zhàn)一下后面的習(xí)題吧!