文档库 最新最全的文档下载
当前位置:文档库 › 数独解法知多少?—高级技巧入门:链的逻辑

数独解法知多少?—高级技巧入门:链的逻辑

数独解法知多少?—高级技巧入门:链的逻辑

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)』也是属于强关系,但需要指出的是,因为这条是同时符合强关系及弱关系,但在推理过程中成立是因为其包含的弱关系。

相关文档