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。它避免了多解的全雙值墳墓。