数独解法知多少
发布网友
发布时间:2022-05-02 22:35
我来回答
共1个回答
热心网友
时间:2022-06-27 22:46
http://sudoku.ke.com/article-75215.html
数独解法知多少?—高级技巧入门:链的逻辑
2011-09-29 本文行家:林敏舫
学会链的逻辑,将高级技巧一网打尽!
首先我想说明下什么是“强”关系,什么是“弱”关系?
强关系是说A与B两个事件,假如A不成立,则B一定成立。
弱关系是说A与B两个事件,假如A成立,则B一定不成立。
举一个简单的例子帮助大家体会:
(图中被划短横线的格表示不含候选数1)
这是一个数独的宫,根据数独规则一个宫内出现数字1-9各一次,可以做出以下两点推断:
1.左上格不是1,则右中格一定是1;
2.左上格是1,则右中格一定不是1。
第一种推断得到这两格的1是强关系,所以可以说两格之间形成一条强链,强链我们通常以双横线表示(==);
第二种推断得到这两格的1是弱关系,所以可以说两格之间形成一条弱链,弱链我们通常以单横线表示(——)。
再举一个例子:
(图中被划短横线的格表示不含候选数1)
上图可以做出三大点推断:
1.左上格是1,则中上格及右中格一定不是1;
2.中上格是1,则左上格及右中格一定不是1;
3.右中格是1,则左上格及中上格一定不是1。
这个例子里,存在着3条弱链,分别是(左上--中上)、(左上--右中)、(中上--右中)。
上面说的是同一数字的强弱关系,当然强弱关系可以不局限于一个数字,下面用例子来说明:
(图中被短横线划掉的格说明未知其候选数情况)
根据右上格的候选数仅有1与2可以做出以下推断:
1.如果该格不能是1,则一定为2;
2.如果该格是1,则一定不是2。
推断一说明数字1与2之间是强关系,形成强链;推断二说明其为弱关系,形成弱链。
(图中被短横线划掉的格说明未知其候选数情况)
右上格有3个候选数,我们可以做出以下推断:
1.如果这格为1,则不能为2或3;
2.如果这格为2,则不能为1或3;
3.如果这格为3,则不能为1或2。
数字1与2、2与3、1与3之间分别为一条弱链。
像第二张图这样的关系推断,大家可能会不以为意,但是这是理解强弱关系的一个很好的例子,对于后面将要叙述的内容也会有所帮助。
相信通过上面的说明大家已经了解了强弱链是什么,接下来我们将强弱链连接起来。
第一种情况:A==B--C==D
由A的真假情况可以做出以下BCD关系的枚举。
再次请大家注意本文开头所提到的强弱关系本质
1.强关系是说A与B两个事件,假如A不成立,则B一定成立。
2.弱关系是说A与B两个事件,假如A成立,则B一定不成立。
(图中红色部分表示根据上一个的真假情况必然是这样的推导)
可见A与D不全为假,即A与D一定有一个为真。
当A与D有等位群格位的交集时,即可做出相应删减。
(图示技巧名为Skyscraper)
根据强弱关系,我们找到了一条符合A==B--C==D的强弱链组:r3c1(2)==r3c7(2)--r9c7(2)==r9c2(2)。
根据上文提到的逻辑关系,可以得到r3c1=2与r9c2=2至少有一个成立,所以可以删去它们等位群格位的交集(即橙色区域)的候选数2。
前面是例举了强弱强的关系,那么弱强弱的关系又能得到什么结论呢?
第二种情况:A--B==C--D
由A的真假情况可以做出以下BCD关系的枚举。
(图中红色部分表示根据上一个的真假情况必然是这样的推导)
可见A与D不全为真,即A与D一定有一个为假。
既然强弱强看起来这么厉害,那么强强强会如何呢?
A==B==C==D
由A的真假情况可以做出以下BCD关系的枚举。
(图中红色部分表示根据上一个的真假情况必然是这样的推导)
可以发现,AD一真一假,全为真,全为假都可能,所以虽然是强强强,也达不到任何效果。
当然有人会提出例子中的弱链『r3c7(2)--r9c7(2)』也是属于强关系,但需要指出的是,因为这条是同时符合强关系及弱关系,但在推理过程中成立是因为其包含的弱关系。