Sudoku Clean 素数独 logo

Sudoku Clean 素数独

技巧文档 / Sue de Coq

极难技巧

Sue de Coq

建议先熟悉:标注候选数 · 数对和数组 · ALS-XZ

Sue de Coq 原名 Two-Sector Disjoint Subsets(双扇区不相交子集)。它发生在一行或一列与一个宫的交叉处,把交叉区和两侧的 ALS 组合成两个互相重叠的锁定集。

先记住一句话:

交叉区的候选被分给行/列侧与宫侧两个互不重叠的 ALS;两侧各有一个数字不能留在 ALS 中,只能进入交叉区,于是相关数字分别锁定在行/列和宫内。

这句话不太直观,下面从最基础的概念开始拆开说明。


1. 三种集合

锁定集

同一区域内的 N 个格子只有 N 种候选数,这 N 个数字必须恰好填满这些格子。例如,同一行内两格只有候选 2、7,它们就是显性数对。

ALS

ALS(Almost Locked Set,近锁定集)是同一区域内 N 个格子有 N+1 种候选数。它比锁定集多一个数字;只要整组排除任意一种候选,剩下的 N 种数字就必须填满 N 个格子。

单个双值格也是最小的 ALS:1 个格子、2 种候选。

交叉区

一行或一列穿过一个宫时,重叠部分最多有 3 格。Sue de Coq 把其中的未填格称为交叉区 C,把它们的候选并集称为 V。

经典形态通常是:

  • 2 个交叉格共有 4 种候选,即 N+2;
  • 3 个交叉格共有 5 种候选,也是 N+2。

更一般时,交叉区也可以比格子多 3 种或更多候选,但两侧就需要更多格子来吸收这些“多出来”的自由度。


2. 标准 Sue de Coq 的结构

游戏中的颜色含义如下:

  • 蓝色格子:行/列与宫的交叉区 C;
  • 黄色格子:交叉区之外、位于同一行或列的 ALS L;
  • 绿色格子:交叉区之外、位于同一宫的 ALS B;
  • 红色候选:可以删除的候选数。

一组严格的 Sue de Coq 必须同时满足以下条件:

  1. 交叉区 C 至少有 2 个格子,候选并集为 V;
  2. 黄色组 L 是严格 ALS:若有 p 格,就恰好有 p+1 种候选;
  3. 绿色组 B 也是严格 ALS:若有 q 格,就恰好有 q+1 种候选;
  4. 两组 ALS 的候选全部来自 V;
  5. 黄色 ALS 与绿色 ALS 的候选集合互不重叠;
  6. 彩色结构的总格数恰好等于 V 的候选种数:

交叉格数 + 黄色格数 + 绿色格数 = V 的候选种数

写成符号就是:|C| + |L| + |B| = |V|

条件 5 是名称中“不相交”的来源,也是安全边界。若同一个 V 中的数字同时被分给黄色组和绿色组,下面的计数证明就不再成立。


3. 为什么交叉区必须从两侧各接收一个数字?

设黄色 ALS 有 p 格、p+1 种候选。因为这些格子处于同一行或列,最终必须填入 p 个互不重复的数字,所以黄色 ALS 的 p+1 种候选中,恰好有一种不会填在黄色格中

同理,绿色 ALS 有 q 格、q+1 种候选,其中也恰好有一种不会填在绿色格中。

关键在于蓝色交叉格同时看见两侧:

  • 蓝格与所有黄色格同处一行或一列;
  • 蓝格与所有绿色格同处一宫。

因此,已经填在黄色或绿色 ALS 中的数字,都不能再填入蓝色交叉区。蓝格能接收的,只剩:

  1. 黄色 ALS 没有使用的那一个数字;
  2. 绿色 ALS 没有使用的那一个数字;
  3. 没有分给任何一侧、只属于交叉区的数字。

而结构的格数等式保证,这些剩余数字的数量与蓝格数量完全相同。于是蓝色交叉区没有其它选择:

它必须接收黄色 ALS 漏掉的一个数字、绿色 ALS 漏掉的一个数字,以及全部交叉区独占数字。

这里不需要知道“两侧到底漏掉哪一个”。无论具体是哪一个,锁定结论都成立。


4. 两个重叠的锁定集

现在观察黄色侧的全部候选。

  • 某个黄色候选如果填在黄色 ALS 中,它当然位于对应行或列;
  • 如果它恰好是黄色 ALS 漏掉的数字,它就必须填在蓝色交叉区,而蓝格仍位于同一行或列。

所以黄色 ALS 的每一种候选,都必定出现在“黄色格 + 蓝格”中。它们被锁定在对应行或列,可以从该行或列的其它格删除。

绿色侧完全相同:绿色 ALS 的每一种候选,必定出现在“绿色格 + 蓝格”中,因此被锁定在宫内,可以从宫内其它格删除。

如果还有只属于交叉区的候选,它们只能填在蓝格中。蓝格同时属于行/列和宫,所以这些数字在两个区域中都被锁定,可以从两边删除。

这就是 Sue de Coq 的本质:

蓝色交叉区与黄色 ALS 形成一个行/列锁定集;蓝色交叉区与绿色 ALS 形成一个宫锁定集。两个锁定集共享蓝色交叉区。


5. 最经典的两格四数形态

Sue de Coq 两格四数示例

假设蓝色交叉区有 2 格,候选并集是 1、2、3、4

  • 黄色行侧双值格是 1、2
  • 绿色宫侧双值格是 3、4

黄色格只能填 1、2 中的一个,另一个必须进入蓝色交叉区。绿色格只能填 3、4 中的一个,另一个也必须进入蓝色交叉区。蓝色两格刚好接收这两个数字。

因此:

  • 1、2 一定出现在黄色格或蓝格中,可以从该行其它格删除;
  • 3、4 一定出现在绿色格或蓝格中,可以从该宫其它格删除。

注意,我们从未判断蓝格最终是哪两个具体数字。Sue de Coq 依靠的是完整计数,而不是尝试某一种填法。


6. 三格五数与“交叉区独占数字”

Sue de Coq 三格五数与独占数字示例

假设蓝色交叉区有 3 格,候选并集是 1、2、3、4、5

  • 黄色 ALS 使用 1、2
  • 绿色 ALS 使用 3、4
  • 数字 5 没有出现在两侧,只出现在蓝色交叉区。

两侧各漏一个数字进入蓝格,再加上必须留在蓝格中的 5,刚好填满 3 个交叉格。

此时:

  • 1、2、5 锁定在对应行或列;
  • 3、4、5 锁定在对应宫;
  • 5 同时被锁定在两个区域中,因此经常能产生额外删数。

提示中若一个蓝色候选没有被分给黄色或绿色一侧,它就是这种交叉区独占数字。


7. 两侧不一定只有一个双值格

Sue de Coq 多格侧边 ALS 示例

双值格只是 1 格 2 数的最小 ALS。Sue de Coq 也允许一侧由多格 ALS 构成。

例如,绿色宫侧可以有两格,候选分别为 3、44、5。两格候选并集是 3、4、5,满足 2 格 3 数,因此是严格 ALS。它最终使用其中两个数字,剩下的一个必须进入蓝色交叉区。

判断多格侧翼时,不要逐格找“哪一格对应哪一个数字”。只需验证整组:

  1. 所有格子位于同一侧区域;
  2. N 格候选并集恰好 N+1 数;
  3. 候选全部来自交叉区 V;
  4. 与另一侧的候选集合没有重叠。

8. 与 ALS-XZ、APE 有什么区别?

与 ALS-XZ

ALS-XZ 研究两组 ALS 之间的受限公共候选 RCC,并由一个公共数字保证另一个公共数字出现。Sue de Coq 没有 RCC 链;它利用行/列与宫的交叉结构,把候选分成两个互不重叠的侧组,再通过格数与候选数相等完成锁定。

与 APE

APE 固定一个蓝格候选,再穷举另一个蓝格的每种搭配,并用 ALS 冲突逐项排除。Sue de Coq 不需要枚举搭配;只要整体结构满足计数等式,两个锁定结论便同时成立。

同一个删数有时可以由基础数组、ALS 或 APE 解释。专项训练会保留 Sue de Coq 的完整结构,而普通提示仍默认选择难度最低的有效解释。


9. 当前实现与 Extended Sue de Coq

本应用当前实现的是侧组候选全部来自交叉区 V 的严格形态

  • 两侧候选必须全部来自交叉区 V;
  • 两侧候选必须互不重叠;
  • 每一侧必须是 N 格 N+1 数的严格 ALS;
  • 使用交叉处的全部未填格。

两格四数或三格五数、两侧各一个双值格,是最经典的 Basic Variant。本实现还支持侧组由多格 ALS 构成的“同候选库推广”;部分资料会把这类推广也归入 Extended Sue de Coq。

更广义的 Extended Sue de Coq 还允许侧组带有不属于 V 的额外候选,甚至只选取交叉处的一部分格子。每增加一个外部候选,就必须增加相应格子并使用更一般的计数公式。它的正确性边界更复杂,当前不会被混入本技巧中。


10. 常见误判

两侧共享了同一个候选

经典形态不允许。两侧候选必须互不重叠,否则无法确定每侧恰好向交叉区“让出”一个独立数字。

一侧不是严格 ALS

N 格必须恰好有 N+1 种候选。N 格 N 数已经是锁定集;N 格 N+2 数则还多一个自由度,不能直接使用同一证明。

两侧候选不全来自交叉区

这可能属于 Extended Sue de Coq,但不能当作当前的经典形态处理。

忘记总数等式

即使两侧各自都是 ALS,若“彩色格总数 ≠ 交叉区候选种数”,蓝格仍可能有额外选择,锁定结论不成立。

把候选删到错误的区域

黄色侧候选锁定在对应行或列;绿色侧候选锁定在宫;只有交叉区独占候选同时锁定在两个区域。

候选数没有补全

Sue de Coq 完全依赖候选并集和精确计数。漏标一个候选,就可能制造一个并不存在的 ALS 或锁定集。因此只有完整、有效的候选数才能用于识别。


11. 实战检查顺序

  1. 找到一行或一列与宫的 2~3 个蓝色交叉格,并写出候选并集 V;
  2. 在行/列外侧寻找黄色 ALS,确认 N 格 N+1 数且候选都来自 V;
  3. 在宫外侧寻找绿色 ALS,做同样检查;
  4. 确认黄色与绿色候选完全不重叠;
  5. 检查“蓝格 + 黄格 + 绿格”的总数是否等于 V 的候选种数;
  6. 黄色候选从行/列其它格删除,绿色候选从宫内其它格删除;
  7. 若有交叉区独占候选,再检查它在两个区域中的删数。

最后再用一句话概括:

两个互不重叠的 ALS 各向交叉区让出一个数字,使交叉区与两侧分别成为锁定集。