Skip to content

唯一性技巧 (Uniqueness Techniques) ​

引言 ​

唯一性技巧基于一个假设:有效数独只有一个解。允许多解的配置必须避免。这不是数独规则本身的一部分,关于这些技巧的有效性存在争议。用户可以通过HoDoKu中的"编辑|偏好|步骤"禁用所有唯一性技巧。

唯一矩形 (UR) — 概念 ​

UR由四个格子组成,恰好占据两行、两列和两个宫,全部共享相同的两个候选数。这样的配置通过交换两个候选数产生两个有效解。

UR一般示例

格子r2c13和r4c13在行2/4、列1/3、宫1/4中形成关于候选数6和8的UR。

UR — 解1UR — 解2

同一道题存在两个有效解,四个UR格子中的6和8互换,说明这种配置必须避免。

二元通用坟墓 (BUG) ​

UR的概括:所有未解格子只有两个候选数,每个候选数在每行、列和宫中恰好出现两次。这样的数独有两个解。

UR 1型 ​

四个UR格子中有一个有超出两个UR候选数的额外候选数。为了防止UR,至少一个额外候选数必须为真。因此,UR候选数可以从该格子中消除。如果只有一个额外候选数,它可以立即填入。

UR 1型示例1

候选数8/9几乎在r2c23和r6c23中形成UR;r2c2中有额外候选数3。消除:r2c2<>8,9(或r2c2=3)。

UR 1型示例2

2/3在r2c46和r9c46中 => r9c6<>23(或r9c6=1)。

UR 2型 ​

两个非对角格子共享一个额外候选数(两个格子中相同的候选数)。任何能看到两个额外候选数的格子可以消除该候选数。

UR 2型示例1

可能的UR关于3/7在r7c29和r8c29中;r78c9中有额外候选数8。消除:r9c9<>8。

UR 2型示例2

r8c56中的额外7从行8和宫8中消除所有其他7。

UR 3型 ​

将UR与显性/锁定数集结合。两个非对角UR格子有额外候选数。由于一个额外候选数必须被设置,这些格子形成一个只包含额外候选数的虚拟格子,使能显性数集。

UR 3型示例1

可能的UR关于1/5在r4c28和r6c28中。r6c8有额外6,9;r4c8有额外4,6。与r1c8和r2c8结合,关于{4,6,9}的显性数三从r8c8和r9c8中消除这些候选数。

UR 3型示例2

UR 3型与锁定数对:r6c23中的额外1,3与r6c1形成锁定数对(锁定在行6和宫4中)。

UR 4型 ​

两个非对角格子有额外候选数。如果一个UR候选数在包含两个额外候选数格子的宫中其他格子都没有,则另一个UR候选数可以从这些格子中消除。

UR 4型示例1

可能的UR关于6/7在r3c79和r6c79中。行3中UR候选数6只在UR格子中。消除:r3c79<>7。

UR 4型示例2

UR候选数8在列8(和宫9)中没有。消除:从UR格子中移除2。

UR 5型 ​

2型的变体,额外候选数可以出现在对角格子中(或三个格子中)。一个额外候选数必须为真;任何能看到包含该额外候选数的所有UR格子的格子可以消除它。

UR 5型示例1

1必须在r7c8或r8c5中以避免UR。r7c4能看到两个格子,所以r7c4<>1。

UR 5型示例2

三个额外候选数(6)在r8c6、r8c9、r9c9中。消除:r8c7<>6。

UR 6型 ​

4型的变体,两个对角格子有额外候选数。如果一个UR候选数在定义UR的两行两列中其他地方没有出现,则可以从额外候选数格子中消除。总是导致两个填入。

UR 6型示例1

在行4/5和列3/4中,候选数5只出现在UR中(形成X-Wing)。在额外候选数格子中放置5将迫使UR。消除应用于r4c3和r5c4。

UR 6型示例2

关于候选数7的UR 6型。每个6型都伴随着一对产生相同填入的隐藏矩形。

隐藏矩形 (Hidden Rectangle) ​

当最多三个UR格子有额外候选数时有效。从没有额外候选数的UR格子开始。检查对角格子的行和列。如果一个UR候选数在那两个宫中UR外没有出现,则另一个UR候选数可以从对角格子中消除。

隐藏矩形示例1

唯一没有额外的格子:r7c7。对角格子r9c5(行9,列5)。候选数5在那些宫中UR外没有。消除:r9c5<>9。

隐藏矩形示例2

两个格子有额外。从r3c2开始:检查行2和列9,候选数4在UR外没有。消除:r2c9<>5。

可避免矩形 (AR) ​

与UR的不同在于一些UR格子已经填入(但都不是给定数)。如果填入的格子中没有给定数,所有UR类型规则适用。一个关键区别:有时UR候选数中只有一个对目标格子仍然可能。

可避免矩形 1型 ​

AR 1型示例1

关于7/9在r12c19中的UR。唯一未填入的格子:r2c9;所有其他都不是给定数。放置9将允许7/9互换。消除:r2c9<>9。如果任何UR格子是给定数,逻辑失败。

AR 1型示例2

6/3在r57c78中 => r5c7<>3

可避免矩形 2型 ​

AR 2型示例1

关于3/7在r78c37中的UR。r7c7和r8c7都不是给定数。r78c3中有额外候选数9。消除:从能看到r8c3和r9c3的格子中移除9。

AR 2型示例2

2/8在r45c37中 => r18c7,r456c9,r56c8<>9

BUG+1(二元通用坟墓 +1) ​

可能的BUG中恰好一个格子有一个额外候选数。该候选数必须被放置以避免BUG。

BUG+1示例1

r1c8中的额外候选数6(它"在至少一个宫中出现超过两次")。填入:r1c8=6(或消除3和5)。

BUG+1示例2

不是BUG+1:r7c6是唯一的非双值格子,但行7有候选数9出现三次(r7c147),列6也不满足BUG条件。

缺失候选数的UR ​

UR即使在不是所有UR格子都持有两个UR候选数时仍然有效。基本条件是:任何UR格子本可以持有所有UR候选数(意味着:UR格子中的UR候选数不能被给定数阻塞)。当先前的消除移除了UR候选数时这很重要。由偏好|步骤中的"允许UR中缺失候选数"选项控制。

缺失候选数的UR 1型缺失候选数的UR 2型缺失候选数的UR 6型缺失候选数的隐藏矩形


内容基于 HoDoKu,作者 Bernhard Hobiger,授权于 GNU FDLv1.3。

Content based on HoDoKu by Bernhard Hobiger. Licensed under GNU FDLv1.3.