苏德科(高级)
页面正在制作中
此页面内容正在完善中,建议您暂时不要阅读此页面的内容。我们会尽快完成更新,为您提供更好的阅读体验。
什么是苏德科
苏德科(Sue de Coq)是一种高级的解题技巧,它是基于显集(Naked Set)的一种扩展。
苏德科技巧的名称源自其发现者的名字,Sue de Coq。苏德科技巧是一种高级技巧,通常适用于困难的数独谜题。
一般定义
- 有两个区域R1,R2,以及未填格子集 C1, C2 和 C3,且它们中的候选数集合分别 S1, S2 和 S3。
- 其中,C1⊆(R1∖R2) 且 C1=0
- C2⊆(R2∖R1) 且 C2=0
- C3⊆(R1∩R2) 且 C3=0
- 且S1∩S2∩S3=0
- 设等级 l=∣C1∣+∣C2∣+∣C3∣
- 若 ∣S1∪S3∣+∣S2∖S3∣=∣S2∪S3∣+∣S1∖S3∣=l,则称 C1, C2 和 C3 组成一个苏德科。
- 则 R1∖(C1∪C3) 中可以消除这些候选数:S1∪S3∖(S2∩S3), R2∖(C2∪C3) 中可以消除这些候选数:S2∪S3∖(S1∩S3)。
以上条件看起来很长很复杂。实际上就是在列出C1∪C3 以及 C2∪C3 形成显集的条件。详见下面的证明。
例子
光看上面的条件可能比较费解,我们来看几个例子。
证明
实际上这里的核心就是要证明C1∪C3 是显集 (当然,C2∪C3 也是显集,但是证明略过)。
C2 和 C3的共同候选数是S2∩S3
因为S1∩S2∩S3=0
所以,这些候选数不出现在C1中
那 C2 中至少要填多少个S2∩S3中的数字呢? 这个数量是:
∣C2∣−∣S2∖S3∣
所以,C2 中填写的数字至少可以消掉∣C2∣−∣S2∖S3∣个C3中的候选数(因为C2和C3在同一个区域中)
而这些候选数又没有出现在C1中,所以,这些候选数就不出现在C1∪C3中
也就是说,C1∪C3中的候选数的数量等于:
∣S1∪S3∣−(∣C2∣−∣S2∖S3∣)=(∣S1∪S3∣+∣S2∖S3∣)−∣C2∣=l−∣C2∣=∣C1∣+∣C3∣
所以,C1∪C3 是显集。
虽然我们知道这个是显集,但是显集的候选数有些是不能确定的(因为我们不知道C2消掉了哪些)。我们可以确定显集中一定有的候选数是:
S1∪S3∖(S2∩S3)
简单的理解,就是不可能被C2消掉的候选数。
所以R1在显集之外的格子中,也就是R1∖(C1∪C3)中的S1∪S3∖(S2∩S3)可以消除。
同理,C2∪C3是显集,且R2∖(C2∪C3) 中的 S2∪S3∖(S1∩S3) 可以消除。