数独是经典的数字推理游戏。但对第一次接触的纯新手小白来说可能会不知道从哪里下手。本篇从头演示如何傻瓜式解决难度不甚大的数独。第一步,完全记上候选数标记。候选数是指一个格子里所有可能填入的数字,在游戏中显示为小数字。因为数独的基本规则是每行每列每个九宫格的数字都唯一,所以对于占据单独行、单独列、单独九宫格的候选数能立即确定它的值。例如这里把数字1填到这种程度就能告一段落了。对于看起来候选数
Wing结构其可以看作是预制的、更易识别的链结构。XYZ-Wing:一个单元格(枢纽)有候选数XYZ,另外两个单元格分别有XY和YZ。关键在于,XY格和枢纽在同一宫,YZ格和枢纽在同一行/列。结论:可以删除枢纽、XY格、YZ格三者共同作用格中的Y。如果枢纽填Y,Y被删;如果填X,则XY格为Y;如果填Z,则YZ格为Y。W-Wing:结构包含两个完全相同的双值格(如都是{3,6}),且它们被一个
一、链(Chain)链的核心是两种关系:强链:A和B不能同时为假,至少有一个为真(成立)。例,一行中只有两个格子可能填数字3,那么其中一个不填3,另一个就必须填3。弱链:A和B不能同时为真。例如,同一个单元格内,填了3就不能填5。用“==”表示强链,用“--”表示弱链。通过“==--==--...”这样的链式推理,得出新的确定结论。二、高级链除了基本的单数链(X-Chain)和双值格
一、基础公式与技巧唯一余数法:行、列、宫已有8个不同数字时,剩下一格直接确定。宫内/行列排除法:利用已有数字对同行、列、宫的格子进行排除,确定数字位置。区块排除法:某数字在区域内只能出现在某几个格子时,可将其所在区块(行或列)的其他可能性排除。二、进阶技巧显性/隐性数对:两个格子只有相同的两个候选数,则该区域内其他格子的这两个数均可被排除。数组(链数):数对法的扩展,例如三个格子仅有三
本篇章介绍因致命结构反推删数的几个结构比较大的技巧。ul(唯一环)结构本身只涉及到ab两个数字,从结构上来看,它很像两个相同位置的鱼的重叠,用链来画出这个结构会发现它是首尾相连强弱递进的,所以结构一旦成立,某个节点只要出现一个数字a,相邻的节点就会是另一个数字b,反之亦然,那么就会有两个不同的盘面,在ur篇我们提到过,标准数独里只有唯一解,那么多解就意味着无解。--------图1为ul的例
鱼(链列)一种结构的称呼,它跟数组很类似但又不太相同,鱼的逻辑是n个数字a刚好填入且只能填入n行n列时,这个结构形成稳定,那么在结构以外的区域不能再填入数字a,否则结构内数字a会填不满导致无解。其中,决定鱼结构的行/列叫做定义域,鱼的结构涉及到所有单元格叫做鱼身,鱼结构成立后能删除数字的区域叫做删除域。定义域如果是行,那么删除域就是列,反之亦然,当然也有宫内的删数格,这是鱼的扩展,不会出现在这个篇
本单元要讨论的是基于致命结构来解题的另一种技巧,bug+1(双全值坟墓)。ur结构是在两宫/两行/两列达到稳定构成的致命,而bug+1涉及到的是全盘所有的候选数。先说说bug+1的构造,全盘候选数只有一个三值格(三个候选数),剩下的单元格都是双值格,而且三值格中的某个数字a在三值格所在的行列宫都各出现3次,那么这个结构就是bug+1。(如果三值格有两个,两个三值格中分别有数字a跟数字b都各出现3
图1是ur3型。观察可发现r6c78只有候选数12,r7c7只有候选数124,r7c8只有候选数123,r7c6有个34的双值格。我们来分析一下,r7c7的4跟r7c8的3如果同时为假,r67c78就会形成12致命,所以它们不能同时为假,如果同时为真,r7c6就无数可填,所以它们也不能同时为真,只能一假一真,这就跟r7c6形成了类似数对的结构,(无论结构内3/4哪个为真,r7c6都会出现另一个数)
在④中我们学习了链,需要注意的是,强弱关系在链中的重要性,链的推导过程中,强关系是可以看做弱关系的。(特别是在同数链当中,很明显,当数字a之间不能同时为假时,如果他们共同在同行/列/宫时,那它们也不可以同时为真,否则区域内会出现两个a;那弱关系能不能看做强关系呢,目前绝大多数的盘面中,弱关系都不可以看做强关系,至少笔者还没遇到过这种情况,而且在解题过程中,强关系的运用是比弱关系要来的更容易、更多使
短链,通称双强链,也是最常遇到的。顾名思义,构造是两条强链一条弱链,根据结构细微不同也有不同称呼,先看看第一种,摩天楼。图1是摩天楼的例子,可以看到r49中3能填的格子都只剩下两个,分别是r4c39跟r9c37,用链的逻辑我们能很快得到图上的删数,那我们来看看摩天楼的结构是怎样的,绿色格子跟蓝色线条是它的‘基底’,红色线条是两侧的墙体,红色方框是墙体两侧的顶端,可以看出红线之间是平行的。所以摩天