空矩形删除法(Empty Rectangle)空矩形删除法(Empty Rectangle)
首先说明空矩形删除法和x链、grouped X-cycle等是有着异曲同工之处。对一道数独题可能用上面方法都可以完成解答,在这里对空矩形删除法进行一个推广,是希望能给大家解题提供一个新的思路。
一、相关概念
首先当然是先来一个定义:
空矩形:在一个九宫格里出现有4个单元格不包含被指定判断是否删除的候选数,且这4个单元格形成矩形排列(如果不懂就不管它,请继续往下走)。
比如下面这样的一个例子(1代表其所在的单元格已经只有一个候选数了):
. 1 . | . . . | . . .
1 1 1 | . . . | . . .
. 1 . | . . . | . . .
------+-------+------
1 . 1 | . 1 . | . . .
. . . | 1 . . | . . .
. . 1 | 1 . . | . . .
------+-------+------
1 . . | . . 1 | . . .
. 1 . | . . 1 | . . .
. 1 . | 1 1 1 | . . .
从上面的例子来看,他符合一个九宫格里有4个单元格存在多个候选数的要求。这5个九宫格存在的矩形如下,
见X所示的图形模式。
X 1 X | . . . | . . .
1 1 1 | . . . | . . .
X 1 X | . . . | . . .
------+-------+------
1 . 1 | . 1 . | . . .
X X . | 1 X X | . . .
X X 1 | 1 X X | . . .
------+-------+------
1 . . | X X 1 | . . .
X 1 X | X X 1 | . . .
X 1 X | 1 1 1 | . . .
先不要让上面这么多XX给吓着,哈哈,希望大家继续耐心的往下看看:
再来一个定义
空矩形交点:见下面“+”号所示的地方就是空矩形交点,大家意会一下吧。大概的意思就是空矩形外的其它5个单
元格形成的两条直线的交点。
X . X | . . . | . . .
. + . | . . . | . . .
X . X | . . . | . . .
------+-------+------
. . + | + . . | . . .
X X . | . X X | . . .
X X . | . X X | . . .
------+-------+------
. + . | X X . | . . .
X . X | X X . | . . .
X . X | . . + | . . .
大家明白上面“空矩形”和“空矩形交点”的意思了吧,希望大家明白了!
二、利用空矩形删除候选数的原则
下面是利用空矩形和强链关系删除候选数的三种模式:
X:---------代表九宫格里的空矩形情况,X里面不包含候选数3;
3-3:------代表强链关系(即这一列里只有两个单元格有候选数3),当然3也可以是1~9中的任何一个候选数。
+:---------代表空矩形的交点;
*:---------代表此单元格里面的候选数3可以给删除(是+和3-3强链相交的地方)。
1、
. . . | . . . | X . X
. . . | . . . | X . X
. 3 . | . . . | . + .
--|------------------
. | . | . . . | . . .
. | . | . . . | . . .
. | . | . . . | . . .
--|------------------
. 3 . | . . . | . * .
. . . | . . . | . . .
. . . | . . . | . . .
2、
. . . | . . . | X X .
. 3 . | . . . | . . +
. | . | . . . | X X .
--|------------------
. | . | . . . | . . .
. | . | . . . | . . .
. | . | . . . | . . .
--|------------------
. 3 . | . . . | . . *
. . . | . . . | . . .
. . . | . . . | . . .
3、
. 3 . | . . . | + . .
. | . | . . . | . X X
. | . | . . . | . X X
--|------------------
. | . | . . . | . . .
. | . | . . . | . . .
. | . | . . . | . . .
--|------------------
. 3 . | . . . | * . .
. . . | . . . | . . .
. . . | . . . | . . .
大家可以容易的进行一个正面,先对上面的模式1来一个Prove吧:
a、如果R7C2是3。那么带*号的单元格里当然不能存在候选数3啦;
b、如果R7C2不是3------->那么R3C2就是3------->那么右上九宫格里的第三行不能存在候选数3------->那么右上九宫格里余下的两个单元格必定有一个是3------->那么不论拿一个是候选数3,都可以确定带*号的单元格里还是不能存在候选数3。
另外两种情况大家可以各自证明一下。
已经写完了笔记,细细想一想,好像.........有用否?.......;哈哈!大家看着用吧。
反正只要看到上面空矩形里面不存在将被删除的候选数,大家就注意一下它可能存在的作用就成了。