标准数独进阶篇⑦
本单元要讨论的是基于致命结构来解题的另一种技巧,bug+1(双全值坟墓)。
ur结构是在两宫/两行/两列达到稳定构成的致命,而bug+1涉及到的是全盘所有的候选数。先说说bug+1的构造,全盘候选数只有一个三值格(三个候选数),剩下的单元格都是双值格,而且三值格中的某个数字a在三值格所在的行列宫都各出现3次,那么这个结构就是bug+1。(如果三值格有两个,两个三值格中分别有数字a跟数字b都各出现3次,这种结构是bug+2。)bug结构中,多出来的数字称为真数。
bug+1的结论是,真数不能为假。包括bug+2在内的bug结构的结论是,真数不能同时为假,这个结论为什么成立。由致命结构我们知道,唯一解数独不能出现交换数字后依旧成立的盘面,在进阶篇⑥中,我们提到了共轭对的概念,然后我们观察图1,这是一个bug+1的例子,可以发现,盘面中只有r4c3一个三值格,剩下的空白单元格都是双值格,而且r4c3中数字3在r4出现了三次(r4c236三个格子),在c3出现了三次(r248c3三个格子),在b4出现了三次(r4c23跟r5c1三个格子),满足bug+1的条件,那么当r4c3的3为假时会发生什么呢,这个时候全盘面的空白格都只剩下双值格,且所有剩下的数字在行列宫内都只出现两次,这意味着当某个单元格内的ab候选数,数字a为假时,另一个地方就必然为真,那么必定又有一个数字b为真,以此类推一直到最后一个格子填入,而数字b为假时也是这种情况,这就相当于a会得到一个解,b会得到另一个解(所有的数字都是只有两个,有一个假的就必定会出现一个真的一直到整个盘面填满),类似于形成了两个盘面的情况,但是唯一数独是不可能存在两种盘面的,多解即无解,所以真数3不能为假,否则全盘致命。
这个涉及到整个盘面的情况不太好理解,但是只要明白ur的逻辑,明白致命结构,那就能理解bug为什么会多解。
----------
图2为bug+2,r5c1的候选数2跟r9c7的候选数1是真数。
所以从逻辑分析上,我们得出了bug中的所有真数不能同时为假的结论,当然,发现者用了大量的例子才得出这个结论的。bug还有其他例子,图1/2的例子中bug的真数在不同单元格,其他的例子中,还有真数在同格一个格子的情况的,所以,bug的构造不仅仅是三值格,还有多种情况,只是三值格的情况更容易被观察出来,但不变的一点是,盘面某一些数字同时为假时全盘只剩下双值格且所有数字在行列宫都是共轭对,那么这就是bug的结构。