数独中的空矩形技巧
什么是空矩形?
针对同一个候选数,如果它在一个宫中的所有位置都沿某一行或某一列分布,形成L形,而行列交点本身不包含该候选数,就形成空矩形。这个结构与外部强链接结合后,可以在宫外产生排除。
如何识别空矩形
选择一个候选数,检查某个宫内的候选位置是否全部属于一条行臂或一条列臂,并确认两臂交点不含该数字。再寻找与其中一臂相连的外部强链接。
第1宫中的候选数7只沿第2行或第2列分布,R2C2不含7。第8行的R8C2与R8C8构成强链接。无论R8C2是否为7,R2C8都必然看到一个确定的7,因此可以删除R2C8中的7。
为什么空矩形成立?
宫内L形结构保证一条臂被排除时,另一条臂必须成立;外部强链接提供互补分支。两个分支都排除同一个目标格中的候选数。
空矩形与锁定候选数有什么区别?
锁定候选数直接利用宫与行列的交叉关系,空矩形则额外使用一条外部强链接,把排除延伸到更远位置。
空矩形成立的条件
- 只分析一个候选数。
- 目标宫内的该候选数必须全部位于一条行臂或一条列臂上。
- 两条臂的交点不能包含该候选数,这正是“空”的位置。
- 宫外必须存在与其中一条臂相连的真正强链接。
- 目标格要同时受到另一条臂和强链接远端的影响。
宫内每条臂可以包含一个或多个候选位置,但不能出现既不属于目标行、也不属于目标列的额外位置。
按步骤核对示例
先看第1宫:7只能落在第2行或第2列,而R2C2没有7。再看第8行:R8C2和R8C8是该行仅有的两个7。若R8C2为7,R2C8与它在第2列和第8行形成冲突链;若R8C2不为7,R8C8必为7,也直接排除R2C8。两个分支得到同一结论。
常见误区
- 交点仍然包含目标候选数,此时不是空矩形。
- 宫内存在第三方向的候选位置,破坏L形限制。
- 外部两个位置不是强链接。
- 只凭图形相似就删除候选数,没有检查目标格的可见关系。
常见问题
空矩形一定要看起来像矩形吗?
不需要。名称描述的是逻辑上的空交点,实际候选位置通常呈L形,而不是画出完整矩形。
一个宫里可以有多个空矩形吗?
可能,但必须针对候选数逐一验证。不同数字或不同强链接不能混合推理。
总结
空矩形由“宫内L形限制、空交点、外部强链接”三部分组成。只有三个条件同时成立,才能把宫内限制延伸到远端目标格。