唯一矩形的基本推理
Reasoning of Unique Rectangle
最后更新于
Reasoning of Unique Rectangle
最后更新于
欢迎来到新的数独技巧。这个数独技巧的推理过程会比较神奇一些,请跟着我的思维一起学习起来吧!
如图所示,我们可通过一些基本的技巧推理过程来到这里。
我们发现,这里有四个单元格展示出了异样的情况:r79c47
。
请仔细观察这四个单元格。我们发现其中三个单元格都只有候选数 2 和 3,而剩下的 r9c4
则除了 2 和 3 外还有一个多的候选数 9。由于我们无法继续进行推理过程,那么我们不妨就假设这个奇怪的候选数 9 不存在,再看看这里会有什么新的问题发生。
假设 r9c4 <> 9
,则它会从盘面里消失,于是乎 r79c47
就完全一样了。完全一样意味着什么呢?那我们不妨把 2 和 3 给填进去。显然,因为四个单元格构成了“闭环”,这意味着只要随意往其中填一个数,那么和它同行列的另外一个单元格也就确定了填数,于是四个单元格都会确定下来。
那么,因为它只有 2 和 3,所以可填的状态就只有两种:
r7c4
和 r9c7
填 2,剩下俩填 3;
r7c4
和 r9c7
填 3,剩下俩填 2。
那么,我们把他填进去,就可以得到这样的盘面:
我们可以从题目里看出,除了刚才我们说的这四个单元格外,其余的单元格都完全一样。不论是提示数,还是填入数,还是候选数,甚至候选数剩余的种类,全部一样。
我们试想一下。这是我们在假设了 r9c4 <> 9
之后产生的情况。这四个单元格填充的方式有两种,但却“殊途同归”。我们知道,一个合格的数独题目必须具有唯一解,这意味着每一个空格都只能有唯一的一种填数情况。而我们认为这个题是唯一解的,那么,在其他除开这四个单元格外,其他单元格的状态完全一致的情况就不可能被我们遇到。
因为,r79c47
这四个单元格的变动压根就不足以影响到任何这些完全没有变化的单元格。也就是说,我们在左边的盘面里随便怎么填一个数,那么右边其实填那个数也没有任何的问题。反之亦然:左边填一个 3,右边对应位置也可以填一个 3;左边填一个 1 和 4,右边同样的位置也可以填一个 1 和 4;左边能填完整个题,右边也能填完整个题。
但是很显然,就 r79c47
而言,四个单元格的填数已经不同。题目要真能允许我们这样“肆无忌惮”地填数的话,这就会违背唯一解的规则——这样四个单元格都填上数字了,这要还能有解的话,岂不是右边的盘面也得是有解的。但是,一个唯一解的题是容不得像图上这样有单元格填数不同却仍然有解的状态的。毕竟我们要求的唯一解需要满足一个非常底层的规则:所有单元格最终都只会存在一个正确的填数情况。所有其他的填数可能对于唯一解的题来说一定得是错误的。
所以,这并不符合一个唯一解必备的题目长相。那么,我们就得到了矛盾。而矛盾的开端呢?就是假设的 r9c4 <> 9
了。因为这个结论在假设后造成矛盾,所以结论不正确;相反,不填的反义词是填入。所以这个题的正确结论应该是 r9c4 = 9
。当然,你也可以说它的结论是 r9c4 <> 23
,也没问题。
我们把这个技巧称为唯一矩形(Unique Rectangle,简称 UR),其中“唯一”表示的是这个技巧利用的是题目唯一解的规则,而“矩形”指的是结构的长相是一个长方形一样的形状。
这是这个技巧的基本推理过程。下面我们针对于这个技巧的一些外围内容进行解释和梳理。
这是我在讲解这个技巧的时候,经常被人问起的问题之一。由于它属于候选数技巧,所以它的本质是借用候选数的推断来下结论的,所以既然候选数正确能引发矛盾,所以理应它是一个删数技巧(毕竟填了之后才发现错了嘛)。可我们从前面的推理过程中得到的是,它的结论似乎告诉我们,剩下的那个数它一定就是对的。
这个问题要从结构本身出发。因为我们假设的是这个候选数 9 从盘面消失,才会导致一系列的连锁反应,并最终得到矛盾。那么,这很明显存在一个潜在的问题——这个多出候选数的格子从来就不一定非得只有三个候选数。刨去唯一矩形用到的那两个数,也就是说它不一定非得只能多一个数。
实际上,它可以多出很多候选数出来。我们来看这个例子。
这次的唯一矩形是竖着长的。
之前那个例子里,我们假设的是多出来的候选数 9 从盘面里消失。这次我们也一样,不过这次得把多出来的全部候选数当成一个整体,让他们全消失。
显然,这是可以的。实际上我们也必须得这么假设:只有当他们全消失,候选数 1 和 8 才会显现出来引发矛盾的特征。所以这个题的初始假设是 r2c7 <> 3469
。当然,因为这些候选数消失了,所以全部的候选数 1 和 8 会显现出来,之后的逻辑就和前面那个例子剩下的部分完全一样了。所以最终肯定也可以得到矛盾的。这后面的部分我就不重复说明了。
总之,因为初始假设条件是候选数 3、4、6、9 全部从盘面消失。所以它矛盾后,就得把这个说法从逻辑上取个反。那“全消失”的反面是什么呢?它的反向情况自然就是至少有一个数是对的。
如果你绕不过来,可以稍微借用数学的思维来思考:“3、4、6、9 都消失”就意味着这个单元格里,在 3、4、6、9 这个候选数集合里有 0 个数是正确的填数,毕竟全部都不对、都消失了嘛。而“等于 0 个”的相反情况是“不等于 0 个”,而“不等于 0 个”里包含的“有负数个”的说法是不合逻辑的,直接去掉,所以不就只剩了“超过 0 个”的情况了么。
当然,更严谨的说法是“只能有一个”。显然同一个单元格本身就不可能填多个数字进去,所以就算是至少有一个对,也只能填一个。不过这里就不纠结这个了,说至少一个和说填一个,反倒不是我们要强调的地方。主要还是想说“3、4、6、9 里有对的数字”这个结论。
那么,至少有一个数是对的,也就意味着我们无法确定里面的正确填数究竟是哪一个。所以,本质的结论是什么呢?结论其实应该是数字层面的反面:不填 1 和 8。
这就是我想说的。所有的唯一矩形的推理,结论都应该是删掉多出来候选数那个单元格里,是唯一矩形用到的那两个数,而不是与之无关的数填进单元格。因此,唯一矩形严格意义上仍然是删数技巧。
或许你会好奇,发明这些技巧的人脑子都是怎么长的。比如这个唯一矩形,凭什么它得是矩形?梯形不行吗?
要解释清楚这个问题,我们需要知道,唯一矩形要奏效(引出矛盾)的根本原因。
我们发现,整个推理导致矛盾的点在于,四个单元格会产生的两种填法,并不会影响这个题目里其他所有格子的候选数状态。当然,提示数和填入数是影响不了的。那么,“是否是矩形”这个问题就可以改为“要使得这种影响不了的状态,需要结构长成什么样”。
首先我们能想到的是,这个结构是否可以变为别的形状。显然,四个格子要能形成闭环,那还得是四个单元格在行列宫之间有两两相邻的这样一个规则限制。既然有这样的限制,那么边就不能随意构造,此时能满足的结构就只有梯形了。
也就是说有这么几个情况:
有人问,正方形可不可以。正方形从本质上并没有改变矩形的说法。倒不是说什么正方形是特殊的矩形,主要还是在于,前面的例子,形成矩形的原因还是因为四个单元格有两侧会相隔甚远,距离太大所以导致的。要是什么题四个格子可以摆到一起,不就正方形了么。所以从本质上来说正方形并不会有什么问题。
那么我们就找一个梯形的例子看看就知道了。
如图所示。可从候选数状态看出,四个单元格都是 6 和 9 了,但似乎确实好像没问题。我们看看唯一解的题是不是允许这种梯形的存在。
首先,我们不妨去假设 6 和 9 的填入,于是我们可以得到两种填法:
可以看出,此时就和前面的例子不同了:我们发现,由于 c1
在四个格子里只有 r5c1
在 c1
的原因,所以它填入 6 和 9 会产生的效果不同。其他的列也都如此。比如说两个填法下,r2c1
就是不同的:左图里只有候选数 8,而右图却有 8 和 9。再比如 r1c2
里,左图有 1、8、9,而右图只有 1 和 8。
当我们得到这一点不同后,我们就无法进行下一步假设了。因为唯一矩形的矛盾点要求两个盘面在填了四个数后状态还得是一样的,但很明显现在就不一样了。不一样就意味着这么填数会对其他单元格有影响。有影响了就说明这两种填法本身是独立的。也就不存在后面说的一边是啥另一边也得是啥的说法了。
这个便是图上梯形不奏效的根本原因:由于梯形的形状,导致结构横纵方向上存在对部分单元格不同的影响(毕竟斜着的那条边,两个单元格在横纵方向上就一定不同了),也就无法引出后续的推导步骤。
好了。既然如此,梯形不行的根本原因就被我们拿下了。可我们发现,前面的示意图里还有一种矩形形态,它只是用到的宫从两个变为了四个。这会有什么不一样么,还得单列出来?
实际上,这个摆放也是不行的。下面我们也找出一个例子予以说明。
如图所示。可以看到这个例子也是只有 2 和 3 的候选数,根本不存在额外的数字,这就说明它也是不能用唯一矩形的技巧推理的。
推理过程完全一样,直到我们发现本题里这四个单元格的 2 和 3 的排列会对单元格有不同影响时:
很显然,虽然行列上并不会影响什么,但是在宫里,因为四个单元格每一个格子都占用一个宫的关系,所以填数的不同会影响到宫内的空格,于是便会造成不同的影响。例如 r1c2
里左图里是 3 和 7,但在右图里就变为了只有 7。
因此,和前面梯形的结果一样,由于单元格会有不同影响,所以也就无法继续进行后续的推理,也就不能用唯一矩形的技巧来得到矛盾了。
那么,说明清楚后,我们对唯一矩形的结构有一个新的认知:
要让一个结构能够形成合适的唯一矩形且可以推理,它必须使用四个摆放形成矩形的单元格,且单元格必须只用到两个宫。
这就是唯一矩形最底层的结构形成原理了。
我们之前总是会遇到残缺的逻辑。鱼的残缺、分支匹配的残缺什么的。那么,如果唯一矩形是残缺的,那么它是否会影响推理呢?比如下面的这个例子。
如盘面所示。本题的删数是 r3c4(8)
。那么,这个数能否删掉呢?
按照基本的推理,数字 2 和 8 会填入进去,然后查看候选数状态是否一样。但很遗憾的是,本题的 r3c4
只有 8,并没有 2 的存在。
这是否意味着,这个例子只有一种填法,而不会产生变换呢?并不会。这是初学者最常见的无法理解的问题。
我们对比两个盘面,候选数状态一致,然后产生两种填法,对吧?可是你会问我,这个 r3c4
明明已经没有 2 了啊,其中的第一种填法根本就不可能出现了。
其实不然。你这么去想这个问题。这个 r3c4(2)
本身已经不存在了,但它“曾经”出现过。既然曾经有这个候选数,那么我们就可以还原回去,将其补充上去使其成为完整的结构。
看到这里,你多半都不会直接认同我的这个观点。因为这个描述里存在两个暂时没有提及或解释清楚的东西:
你怎么知道这个候选数是曾经出现过的?
为什么删掉了的候选数仍然可以补回去?
下面就对这两个问题进行解释。
第一个问题。我怎么知道这个候选数曾经存在过。其实很简单,看盘面的提示数即可。提示数在给出之后,候选数状态就已经定下来了。这个时候,此时是候选数在盘面之中最多的时候。因为我们后续的步骤要么是出数,要么是删数。出数操作会引起一大片的删数(所在的相关单元格的空格里都不能再填入这个数);而删数操作则会小幅度引起一个或一些的删数。总的来说肯定会引起候选数数量的减少,而不会增加。
很显然,在盘面初始状态时,候选数最多;而这个时候的候选数状态,其实就是只依靠基础排除技巧(或者说唯一余数的数数)而产生的情况。比如说,假设我有一个盘面里,r1c1
是提示数 1,那么此时的 r1c1
的所在行列宫里,只要是空格,就不能存在候选数 1。这是初盘就暗藏存在的基本删数情况。而一旦出现这些提示数,那么我们就可以根据排除的操作进行删数,自然就有了候选数的初始状态。
那么,如何对比一个数是否存在呢?这就很简单了:直接看该单元格的所在行、列、宫的提示数,是否有这个数即可。比如说题目里的 r3c4
。它的相关单元格里的提示数是没有数字 2 的。如果没有 2,是否就意味着我们排除不到数字 2 上去,是否就意味着初盘是存在这个候选数的?这就是为什么我可以直接说,这个候选数 2 其实是存在的的原因。
然后是第二个问题。为什么删掉了的候选数还可以补回去。这也很简单。这甚至都不用说这么多,其实一句话就可以解释清楚:因为它是我们之前删掉的,我们有权控制删数的先后顺序。每一个步骤都是我们通过 100% 的、正确的、严谨的逻辑得到的结论。而这些结论既然已经得到,就说明它是过往产生的删数。这些删数我们知道一定是对的,那么我们就可以认为,只要做题尚未结束,我们就可以控制它在任何时候被去掉。比如说,我知道 r2c2 <> 2
是正确的结论,假设我在其中第 10 个步骤的时候得到的该结论,那么我可以在初盘就删掉它,也可以第 10 步之后才删掉它。因为你做题的操作是随意的。就好比你在做题操作期间先发现别的,然后才发现它。如果你优先发现到它了,那么它就可以先用;你之后才发现它,可能就只能在后续步骤里才能用。但这并不影响什么,因为我们都知道它客观上就是错误的,所以我们可以安全地在任何时候控制是否删掉它。
所以,既然我们知道它之前存在过,而且还知道它是错误的,那么我们可以还原回去,等先使用了唯一矩形的基本推理规则后,然后去删掉它,这种思维并没有什么不妥;而且,这种思维方式不限制它残缺的具体位置。只要它是不全的,不论缺少的是删数部分还是结构部分,我们就可以视为残缺的,然后补全进行使用。
那么,提示数能用唯一矩形技巧吗?或者说,因为唯一矩形的形态(也就是导致矛盾的那个形态)在唯一解的题里不存在,那么是否就意味着如果一个题里出现了这种形态的数字的摆放,这个题就是不唯一解的呢?
例如这个题。
如图所示。可以看到,很明显的 r12c18
构成的唯一矩形的那个矛盾的摆放形态。你觉得这个题是否唯一解呢?
题目肯定是唯一解的,所以所谓“提示数不能形成唯一矩形那样摆放的形式”这种说法肯定是无稽之谈。因为提示数是题所固定的数字,这些数字根本就由不得你去改。你改他们就等于说是你把题给改了。所以题唯一解与否跟提示数摆成这样没有任何关系。下一个。
很显然不能。既然在最后下结论得到矛盾这里要求题目唯一解才能造成矛盾,那自然就不能用在非唯一解的题目之中。
那么,可能你有一定的好奇心想问我,我真要是将唯一矩形用进多解或无解题之中去了,这最终究竟会如何呢?既然你诚心诚意地发问了,那我就大发慈悲地告诉你。
首先是无解题。无解题的本质意思是说,做到后面某一步的时候,必然有行列宫上的冲突。这就不关你是不是用了唯一矩形了,这种矛盾的本质是因为它最终给的初始条件(那些提示数)自身就存在矛盾。虽然这种矛盾不一定是初盘就一眼看得出的矛盾,也可能是做到后面才能发现的矛盾,但是这种题既然有矛盾就不可能等到最后出唯一矩形的时候了。也就是说,既然题有问题,就不可能存在你用了唯一矩形反而改成唯一解甚至多解的情况。
再来说多解题。多解题确实比较复杂。多解题在使用唯一矩形后什么情况都有可能发生——题可能不变(仍多解),也可能改成唯一解,甚至是无解。
能造成多解其实并不奇怪,因为题目本身就是多解的,如果存在非常多的填法的话,即使你使用一次唯一矩形,也不会影响题目是多解的结论。这种情况并没有什么特别需要说的。主要说明的是导致题目成为唯一解和无解的情况。
先来说导致无解的情况。我们随便找一个双解题,即只有两个解的题目。
如盘面所示。显然我们这里有三处是可以直接得到填数 3 的。得到之后可以发现,1 和 2 是无论如何都不能确定的,因此这个题具有两个答案。
但是,假设我们暂时不关注这几个 3 的填数,而是去看这个唯一矩形,你就会发现,这里的唯一矩形可以直接得到 r7c5 = 3
的结论。此时它将直接导致刚才我们留空的三个填 3 的单元格无法 3,致使出现无解局面。这就是多解题误用唯一矩形导致无解的其中一种情况。
实际上导致这样的境况的例子非常多,也不一定非得只有四个留空的双解题才能这样。你完全可以自己构造一个题出来。这个例子是为了演示导致无解的局面所以故意构造出来的情况,其他位置都有数字是为了避免你去关心这些没有关系的单元格,所以初始状态下给的数就比较多。
下面我们来看一个比较奇怪的情况,多解题使用唯一矩形会导致变为唯一解的情况。
如盘面所示。这其实是一个多解题,虽然看起来不太像是一个多解题,但是它确实一共包含了三个不同的解,你可以试一下。
可以看到,这个结构有两个交织在一起的唯一矩形结构,一个是关于 1 和 3 的,另外一个则是关于 1 和 2 的。很显然,我们随便使用哪一边的唯一矩形,都会直接导致 r4c4
可以直接出数,于是后面的单元格因为出数的关系,就全部可以填完。而从这个视角上来看,因为是多解题,你使用了唯一矩形,题的剩余空格甚至可以全部填完,而且不会存在冲突,也不会存在多种填数情况——后面是可以一直做下去的。可以看到,这是多解题在使用了唯一矩形后,变为唯一解的情况。
和前文一样,本题的其他位置都有数字,但实际上的多解题并不一定非得如此才能遇到上面这样的形式。只要外侧的填数都能在不使用唯一矩形这样利用唯一解的方式进行做题,且可以一直往下做到只有上面这样的局面的时候,这样的情况也是可以的。
所以,在平时做题过程之中,这样的情况时有发生(时不时会遇到一次,比如题目本身就有问题导致多解)。而且我们反复强调,唯一矩形不能用在非唯一解的题目之中,因此不要胡乱使用唯一矩形技巧,它是有先决使用条件的。而且,多解题是可能在使用了唯一矩形后变为唯一解的,此时有可能会造成玩家对“唯一解”的理解出现概念上的偏差甚至是错误,以为这个题本身就是唯一解的。所以,千万不要在多解或无解题里使用唯一矩形,以及后面会说到的一些利用唯一解作为证明矛盾的所有致命结构技巧。
简单解释来说就是,r2c7
包含的候选数有 6 个。我们将其按照假设的情况分为两个部分:1 和 8,以及剩下的四个候选数。假设 1 和 8 这个集合名字叫 ,然后剩下的四个候选数我们取名叫它 。
因为我们知道,因为整个单元格必须只能填一个数,而结论告诉我们集合 提供了这个数,自然就没有 什么事情了。所以,把候选数 1 和 8 删掉,才是这个题的真正结论,即结论为 r2c7 <> 18
。