数独中的摩天楼技巧
什么是摩天楼?
摩天楼是一种只围绕一个候选数展开的结构,由两条不同的行或列中的两个强链接组成。对于选定数字,每个基础单位中恰好有两个候选位置。每对中的一个位置构成共享的基础连接,另外两个位置就是端点,也称为摩天楼的“顶部”。
两个顶部不可能同时为假。因此,任何同时能看到这两个端点的格子都不能包含该候选数。
如何寻找摩天楼
- 选择一个候选数。
- 找出两行或两列,在其中每个单位里该候选数恰好出现两个位置。
- 从两对位置中各找一个能够互相看到的位置,组成共享的基础连接。
- 将剩下的两个位置作为顶部端点。
- 找出同时能看到两个端点的格子,并删除其中的该候选数。
这个结构可以旋转或翻转。两条基础单位不必相邻,两个端点也不必位于同一个宫。关键在于强链接逻辑以及基础位置之间的可见关系。
为什么可以排除候选数?
假设候选数4在两行中各有两个可能位置。如果第一行的一个基础候选位置为假,那么该行的另一个位置必须填4。通过共享的基础关系,这会迫使第二行的对应位置成立,并使另一侧的顶部为真。反过来推理也一样。
因此,两个顶部端点中至少有一个必须填4。任何同时能看到两个顶部的第三格都不能再包含4。
摩天楼与 X-Wing
X-Wing 要求两条基础行中的候选位置精确对齐在相同的两列。摩天楼不要求这种矩形对齐,而是通过两个强链接和共享的基础连接,在同时看到两个端点的格子中产生排除。
摩天楼常见误区
- 整个结构只能使用同一个候选数。
- 每个基础单位中,该数字必须恰好有两个候选位置。
- 不要把任意可见的候选对都当成强链接;它必须是该单位中该数字唯一的两个位置。
- 只能从同时看到两个顶部端点的格子中排除候选数。
什么时候使用摩天楼?
在更新单数、数组和锁定候选数之后,可以检查摩天楼。当某个候选数在两行或两列中几乎对齐,却无法组成完整 X-Wing 时,摩天楼尤其有用。完整的候选数标记和逐个数字检查会更容易发现两个强链接。