唯一性技巧 (Uniqueness Techniques)
引言
唯一性技巧基于一个假设:有效数独只有一个解。允许多解的配置必须避免。这不是数独规则本身的一部分,关于这些技巧的有效性存在争议。用户可以通过HoDoKu中的"编辑|偏好|步骤"禁用所有唯一性技巧。
唯一矩形 (UR) — 概念
UR由四个格子组成,恰好占据两行、两列和两个宫,全部共享相同的两个候选数。这样的配置通过交换两个候选数产生两个有效解。

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


同一道题存在两个有效解,四个UR格子中的6和8互换,说明这种配置必须避免。
二元通用坟墓 (BUG)
UR的概括:所有未解格子只有两个候选数,每个候选数在每行、列和宫中恰好出现两次。这样的数独有两个解。
UR 1型
四个UR格子中有一个有超出两个UR候选数的额外候选数。为了防止UR,至少一个额外候选数必须为真。因此,UR候选数可以从该格子中消除。如果只有一个额外候选数,它可以立即填入。

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

2/3在r2c46和r9c46中 => r9c6<>23(或r9c6=1)。
UR 2型
两个非对角格子共享一个额外候选数(两个格子中相同的候选数)。任何能看到两个额外候选数的格子可以消除该候选数。

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

r8c56中的额外7从行8和宫8中消除所有其他7。
UR 3型
将UR与显性/锁定数集结合。两个非对角UR格子有额外候选数。由于一个额外候选数必须被设置,这些格子形成一个只包含额外候选数的虚拟格子,使能显性数集。

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

UR 3型与锁定数对:r6c23中的额外1,3与r6c1形成锁定数对(锁定在行6和宫4中)。
UR 4型
两个非对角格子有额外候选数。如果一个UR候选数在包含两个额外候选数格子的宫中其他格子都没有,则另一个UR候选数可以从这些格子中消除。

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

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

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

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

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

关于候选数7的UR 6型。每个6型都伴随着一对产生相同填入的隐藏矩形。
隐藏矩形 (Hidden Rectangle)
当最多三个UR格子有额外候选数时有效。从没有额外候选数的UR格子开始。检查对角格子的行和列。如果一个UR候选数在那两个宫中UR外没有出现,则另一个UR候选数可以从对角格子中消除。

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

两个格子有额外。从r3c2开始:检查行2和列9,候选数4在UR外没有。消除:r2c9<>5。
可避免矩形 (AR)
与UR的不同在于一些UR格子已经填入(但都不是给定数)。如果填入的格子中没有给定数,所有UR类型规则适用。一个关键区别:有时UR候选数中只有一个对目标格子仍然可能。
可避免矩形 1型

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

6/3在r57c78中 => r5c7<>3
可避免矩形 2型

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

2/8在r45c37中 => r18c7,r456c9,r56c8<>9
BUG+1(二元通用坟墓 +1)
可能的BUG中恰好一个格子有一个额外候选数。该候选数必须被放置以避免BUG。

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

不是BUG+1:r7c6是唯一的非双值格子,但行7有候选数9出现三次(r7c147),列6也不满足BUG条件。
缺失候选数的UR
UR即使在不是所有UR格子都持有两个UR候选数时仍然有效。基本条件是:任何UR格子本可以持有所有UR候选数(意味着:UR格子中的UR候选数不能被给定数阻塞)。当先前的消除移除了UR候选数时这很重要。由偏好|步骤中的"允许UR中缺失候选数"选项控制。




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