BUG 的意思是*全双值坟墓*(Binary Universal Grave):每个空格恰好有两个候选数,且每个候选数在每个区域中最多出现两次——这是一种有多个解的无效状态。
BUG+1 是几乎成为 BUG 的状态:每个未解格都是双值格,只有一个格子有三个候选数。唯一性告诉我们,这个格子中的额外候选数必定为真。
原理
如果那个额外候选数为假,盘面就会变成纯粹的 BUG——通常会有多个解。唯一解的谜题不允许这种情况。
所以这个额外数字是被迫的。填入它。
如何发现
每当除一个之外的所有空格都是双值格时,快速检查一下。
演示
462793218746567289815693742273841596649752813327872519343427651
唯一解的经典谜题不可能陷入全双值坟墓(全是双值格、有多个解)。
462793218746567289815693742273841596649752813327872519343427651
检查是否几乎每个空格都恰好有两个候选数。恰好有一个格子有三个——这就是 BUG+1。额外的数字是 9。
462793218746567289815693742273841596649752813327872519343427651
如果 9 为假,谜题就会陷入那个有多个解的全双值致命坟墓。
4627932187465672898156937422738415966497528133927872519343427651
在三候选数格中填入 9。唯一性要求如此——只适用于唯一解的经典谜题。
示例 1
41937283941657182943429561657419718236547384691255263184194275836
寻找一个全是双值格、只有一个三值格的盘面。
41937283941657182943429561657419718236547384691255263184194275836
BUG+1——额外的数字是 8。
419372839416571829434295616574189718236547384691255263184194275836
填入 8。它避免了多解的全双值坟墓。
示例 2
8654714957123867186457691842538275964542617846183768342751978642
寻找一个全是双值格、只有一个三值格的盘面。
8654714957123867186457691842538275964542617846183768342751978642
BUG+1——额外的数字是 9。
86547149571238671864576918425382759645426178461837683427519798642
填入 9。它避免了多解的全双值坟墓。