grid_on

Sudoku Clean 素数独

技巧文档 / 摩天大楼

摩天大楼

前置知识: 链的基础

进阶

摩天大楼

前置知识:链的基础

描述

摩天大楼是一种“删候选”的单数技巧:只盯住一个数字 d

d 在两条平行的行/列里都只剩 2 个候选位置(两面墙),并且两面墙各有一个端点落在同一条垂直的行/列上(地基),剩下的两个端点就是屋顶。
能同时看见两个屋顶的位置,其候选 d 就可以删除。


详解

摩天大楼示例

先看上图:目标数字是 9

你可以把它当成一栋小楼:

  • 两面墙(强链):在 第 2 列里,9 只出现在 r4c2r9c2;在 第 8 列里,9 只出现在 r6c8r9c8
    (同一列里只剩两个位置 ⇒ 二选一的强链)
  • 地基(弱链):两面墙的“底端”都落在 第 9 行(图中用黄虚线连起来)
    同一行不可能出现两个 9 ⇒ 这两个底端不可能同时为真
  • 屋顶:两面墙“上面”那两个端点(图中蓝色格子 r4c2r6c8

现在看红色候选:r6c1r4c9 里的候选 9。为什么它们能删?

重点只要看这条反证就够了:

  • 假设红色候选 9 为真(以 r6c1 为例,r4c9 同理)
  • 它能同时看见两个屋顶,所以 r4c2 ≠ 9r6c8 ≠ 9
  • 两面墙是强链:屋顶被排除后,9 就会被迫落到地基的两个端点 r9c2r9c8
  • 可地基在同一行上,不可能同时出现两个 9 → 矛盾

所以红色候选不可能为真,r6c1r4c9 里的候选 9 都可以删除。


例子

下面两张图展示了两种方向的摩天大楼,你可以照着对比“墙 / 地基 / 屋顶 / 删数点”:


摩天大楼示例(方向 A)

摩天大楼示例(方向 B)


如何寻找摩天大楼?

在游戏里你可以按这个顺序找:

  1. 先选一个数字 d
  2. 找两条平行的行/列,让 d 在每条里都只剩 2 个候选位置
  3. 看看它们是否能在某一条垂直行/列上对齐出一条地基
  4. 另两个端点就是屋顶:能同时看见两个屋顶的位置,就是可删的候选 d