Sunnie😂 和纱的星光
不完美的人生才是最完美的.
关注数: 13 粉丝数: 543 发帖数: 3,554 关注贴吧数: 2
致命结构艺术馆 致命结构指的是,结构内部至少存在两种填法,而这样至少两种填法的情况均不会影响到盘面剩余单元格的其他填数。因为题目是唯一解的,所以一个题目不可能产生像是这样,结构填法互换而其他位置还不受影响的情况的,因此结构必然凉了。以下将陈列一些常见的标准数独的致命结构。唯一矩形(Unique Rectangle)。 如果I6<>9时,四格产生两种2和3互换的填法。拓展矩形(Extended Rectangle),UR的拓展。不过这个结构并非填法交换,而是G和H行整体交换都没有问题(这一点可能现在理解起来不容易,多画图想想)。唯一环(Unique Loop),这个可以和UR等同,假设G4<>8则产生交换。双值坟墓(Bivalue Universal Grave),假设H9<>1,则全盘产生与唯一解矛盾的两种填法(实际其实是无解的)。可规避矩形(Avoidable Rectangle),如果E1=9,则BE12四格可以产生19互换的情况(别说蓝色都填好就不能换了)。3数的探长结构(简称“abc”),如果D7<>8,则4、5、9可产生至少两种填法。4数的探长结构(简称“abcd”吧)。I9<>7的时候,1、2、3、4可交换,产生至少两种填法。两个纠缠状态的拓展矩形,这个就没有名字了。淑芬结构。I2<>2的时候,2卡死在GH12里,这样一定会让结构形成致命填法。两个UR和一个拓展矩形的纠缠结构。暂且叫唯一方阵吧。假设E1<>3的时候,结构可以产生至少两种互换而不影响其他单元格填数的情况。abc+拓展矩形。两个拓展矩形纠缠结构。abcd+其他乱七八糟的UR形成的19格的致命结构。反过来看。如果I789里有一个是9,则一定会形成8和9的唯一环。 找到新的好图将会持续更新。
同区域数组和跨区域数组? 什么是数组?数组是一系列(同一区域下的)单元格内,确定只能填入某些数字,并且可以换着填都没毛病的结构,严谨来说,数组分两种,显隐性: 显性数组:同一区域下,n个单元格内只有n种不同的数字; 隐性数组:同一区域下,n种不同的数字只能填入到n个单元格内。 不过,在上述叙述之中,“同一区域下的”六个字被打上了引号。也就是说,数组并不只是这么简单的用法。在较难的题目之中,数组并不一定必须要存在于同一区域内。 Part 1 Sue de Coq(SdC) SdC是一种数独技巧,它是典型的跨区数组结构。我们随意拿出一个示例作为分析。如图所示,紫色的四格里,恰好只有3、4、7、8四种不同的数字。那就一定能够表明,它是一个数组吗? 是不是数组不仅仅只考虑上述定义里的内容,还要思考,里面有没有可能会相同的数字?这是为什么呢?如果这四格里有可能出现相同的数字出现的话,那就最多只可能有三种不同的数字,而占据了四格,那剩下没有出现的数字是我们无法预料到的,推导无法继续进行下去。所以,必须是完全都不同的数字。 幸好,SdC就是这样的一个结构,可以发现,4和7在这个区域下,只有同列出现,而3和8则只在同宫内出现。这样一来,数字就无法出现相同的情况了。 那么不能有相同的数字,也恰好是四个单元格填四种不同的数字,显然是跨区的四数组了。那么,可以遵循数组的方式删数。那怎么删数?我们保证里面的填数一定在其中的,换句话说,3、4、7、8一定会在其中出现,且不可能有多出来的无关数字,也不可能少掉一些完全不出现的数字。所以,大大方方地找到所在区域,删掉即可。例如3和8,由于只出现于结构的同一宫之中,那么该宫内其余位置也就不能是3和8了,删掉它们;同理,4和7也一样。 当然了,SdC是需要结构跨越行宫或列宫两个区域的跨区数组,那行列跨区数组存在么?存在。 Part 2 行列跨区数组如图所示,题目来自于陆仁贾童鞋在欧泊颗上的标准数独骨灰级PK。 划线处四格只有1、2、7、8四种数字,可能是数组结构。 那么,内部可能不可能有相同数字呢?显然不能。1和7只出现于它们所在列;而2和8也只出现于它们所在行。所以,数字也显然不会产生重复。那,我们可以保证,1、2、7、8一定会出现于其中了。于是可以直接对对应所在行列进行删数。删数我就没画出来了,自己思考。 Part 3 伪数组 要说伪数组这种东西呢,它就不能算是一种跨区数组了,因为它内部完全是可能存在重复数字的,这一点我们无法作出保证,但能够保证的是,内部只会有一种数字有重复,这样便于我们思考问题和得到删数。喏,这种结构就是一个伪数组,伪五数组。 可以确定里面只有五种数字,也是五个单元格。可以发现,里面数字7可能有重复填写的情况。比如数字可以同时填在F2和E9。 但不论如何,这四个7都不能全部没有。如果全部都消失了的话,五格里就只剩下1、4、5、8四种数字,且不能重复。五格显然是不够只填写四种数字的,所以这样是矛盾的。所以,7是至少有一个了。 那么,这个结构删除的地方,就是所有7的交集。E1就是它们的交集。
越俎代庖说一下“SDC” SDC,Sue de Coq,俗名“融合式跨区数组”,学名“双区域分布式跨区数组”,是一种跨区域也能使用的数组结构,而且一般来说,SDC是出现在一个宫和一个行或列上的结构,一般有两种类型。 **0 写帖原因** 因为看到了之前有人发SDC的直观方式。贴吧ID传送门:5561745444。 **1 逻辑解释** 类型1:基本结构如图所示,涂色的四个单元格内,一共有3、4、7、8四种不同的候选数。而我们进一步发现,3、4、7、8四种数字恰好都不可能在结构之中有重复的填数情况。换句话说,这四格里面只可能恰好有一个位置填3,只有一个位置填4,只有一个位置填7,一个位置填8。因为我为这些候选数上色,你就会发现,4、7只会在ACF7三格出现,而3、8只会在A79、C7三格出现,所以根本不可能有重复的填数在这个结构内。 因此,我们可以确定,4、7在第7列上只可能填在ACF7,所以7列其余位置的4和7均可删除;同理,3、8也是一样的类似观察方式。 类型2:拓展结构如图所示,一共涉及6格。我们依旧发现,这六个单元格内恰好只有1、2、4、6、7、9六种不同的候选数。而且1、4同列,2、6、7同宫,9既可以看作在列上,也可以看作在宫内。所以我们可以确定的是,3列其余位置不能有1、4、9(注意9不要漏掉了),7宫其余位置不能有2、6、7、9(注意9也别漏了)。删除掉它们。 **2 观察** SDC的观察相当费时费力。这是这个结构的硬伤,先从全盘候选的层面教大家如何观察。 首先,SDC具有如下特征: 1. SDC内部数字一定不可重复; 2. SDC涉及两个区域下的至少四个单元格; 3. SDC结构内至少有两格是处于两个区域的交集下; 4. SDC的所有单元格内所有候选数都会涉及到。 这三点理解起来是这样的: * 第一点,不用解释了,刚才解释了; * 第二点,数组的最小规格是2,要做成两个区域下,就最少需要4种不同的数,所以最小规格是4; * 第三点,观察刚才两例,因为SDC一定会涉及宫内,另外一个区域则是行或列,所以这两个区域一定会产生交集,比如产生在3列和4宫的SDC,交集就是第3列和第4宫的交集,即DEF3这三格。那么这一点想说的是,SDC至少有两格是在这个交集内的; * 第四点,结构内所有数字全部都会用到,没有一个浪费的多余的数字。 好了,知道这一点,我们来大概说一下它的观察方式。 首先,对一个大行和大列进行搜索。所谓的大行和大列就是并排的三个宫。大行就是横着并排的三个宫,大列就是竖着并排的三个宫。SDC结构是产生于两个有交集的区域的,所以这两个区域一定是同属于一个大行或大列的。所以找的时候,可以确定的最小范围就是一个大行和大列的这27个单元格。 其次,随便寻找一组单元格,只要满足内部数字不重复即可。观察方式就是,只要候选数“没有拐弯”就可以。比如说,XYZ-Wing结构,涉及三格,其中必然有一个数字是跨区域存在的,而另外两格只出现在结构内同区域下的,所以XYZ-Wing结构不是一种跨区数组(或者说,如果是跨区数组,则需要进一步说明和证明)。SDC一定是一种跨区数组,而且完全没有这样的跨区域存在的候选数,所以找的时候就去这么看。 > 注意哈,这里要注意一个地方是,找出来不重复还要确认一下,是否恰好是n格n种候选数,多了少了都不行。因为它是个跨区数组,那肯定候选数种数和单元格数是一样的。然后稍加确认,是否有数字没有用到。 第三,满足这两点了,还要看第三点,是否这个跨区数组有交集。讲道理呢,满足第二点自然应该满足第三点。因为没有交集显然就会存在跨区情况,就即使内部数字不重复,也是两个完全分离的数组结构,就没意义了。所以,它一定是“融合”的。 第四,寻找删数,为数字进行分类,看哪些数字存在在行列上,哪些数字在宫内,哪些数字既在宫上,也可以在行列上。 **3 实战例题** 接下来实战一下。如图所示(原图候选数标注有误,擦掉了两个完全无用的候选数),首先找SDC需要按大行或大列为单位。我们从第1大行(123宫)上寻找。 我们发现,疑似的多个单元格,具有相同种类的候选数。因为,SDC要涉及一个宫,所以分1、2、3宫三种情况进行分析和思考。比如1宫,大概思考一下,是否可能构成SDC。比如C123三格,恰好都有2,可能是第二种SDC类型,不过还多了3、5、9三种数字,而3、5同行,多出来的3和5位于C78两格。但是C78还有6和7,我们立马想到了把C6也算上。但是,这样我们发现,C123内没有其他数可以放在1宫内,所以SDC一定不存在在这里。 那么,在哪里呢?观察1行和1宫。1行和1宫的交集是A123,除了6提示数占一格外,还有A12。交集上存在1、3、5、8,而我们发现,如果把A9算上就恰好让交集里面的3和5出现在行上。那交集里面现在就只剩下了1这一种候选数。观察1宫,B3有14,差一点,4哪里来呢?B1啊,B1有48,这样就恰好把交集里面的1和8都用完。 所以结构是这样的:这样五个单元格刚好就可以构成SDC。 删掉3之后,有一些步骤,这里简单过。Finned X-Wing(鳍二链列)Pointing区块 然后又是一个SDC。这一个就自己理解和发现了吧!
鱼的通用删数原则和饱和性 这一节讲一下鱼结构的通用删数原则以及观察方式。 之前的内容,讲到了几乎所有的同数结构。但是,由于结构的各种“包装”形式(诸如外鳍、内鳍和自噬现象等等),导致了结构寻找起来更为耗时,使用更加困难。那么,有没有哪种鱼结构,比之前的结构,更加好找呢?答案是肯定的。但是,它的逻辑则和之前介绍到的鱼结构有些许不同。如盘面所示,图中有一个复杂水母结构,按照原定的思维去理解它,则可以发现,原结构所在单元格应为BFH1279和DE79,但由于定义域内部有重叠,所以F79应当为内鳍。随后,由于B8处本不存在鱼身单元格,所以B8应为外鳍。 然后,根据原本逻辑,当鳍均不成立的时候,则是宫内水母,按原定逻辑,可以删除所有删除域上的数字。但是因为鳍的成立,导致删数范围缩小到鳍和删除域的交集。所以该结构只能删除AC7(2)。 这便是原来的逻辑。可是我们在观察之中,很少、甚至几乎看不到这样的结构,因为这样的方式只是为了方便理解鱼才这么“包装”的,而“包装”则是需要消耗时间的,原来的结构已经比较复杂了,再加上“包装”,就会相当浪费时间。那么,有什么快速的办法吗? 现在,我们暂时忘记所有关于鳍的内容。那么,原本的结构,则应该呈现成如盘面所示的样子:然后,对所有鱼身单元格(涉及结构的所有所在单元格)施行“全覆盖”政策:即随意寻找删除域,只要删除域涉及的区域不与定义域涉及区域重复即可。也就是说,删除域和定义域不可同时都包含同一个区域,比如行F,删除域则不应出现行F。另外,删除域上要涵盖所有的鱼身单元格。 随后,我们随便找到了由5个区域构成的删除域,如盘面所示。此时的删除域则应为列1、列2、列7、列9和宫3。这样可以“覆盖”所有的鱼身单元格,没有遗漏。 接下来,对所有删除域上的数字2作分析:假设删除域上任一个为真,如果能够得到定义域涉及的区域数比删除域涉及的区域数多,就是错误的。比如此时假设A7=2,随后发现,此时A7处在列7和宫3的交集上,所以A7=2的时候,剩下的删除域就只涉及三个区域了,但是定义域的区域数并没有变化,依然是4。那么因为定义域区域数比删除域区域数多(四个定义域区域和三个删除域区域),所以矛盾,故A7<>2;同理,C7(2)也是这么推导的。 看到这里的您或许有一个问题:为啥定义域区域数比删除域区域数多,就矛盾了呢?下一节我们就来阐述一下原理。 定义域区域比删除域区域多的时候,您可以这么去想:我们把定义域看成强区域(强关系所处区域),而把删除域看成弱区域(弱关系所处区域)。按照原始逻辑,一旦强区域数比弱区域数多的话,内部就一定会出现填数重复的矛盾现象,而最典型的例子就是守护者。 那么,这一点还可以解释一个问题:自噬现象。不过,它假设的位置并不在删除域上,而在定义域上,因为自噬鳍的位置必然是鱼身所在的某个单元格。如盘面所示,这是之前的示例。我们按照刚才说到的新版删数方式,假设自噬鳍原本的位置为真。比如假设D5=8,此时定义域区域少一个,而删除域区域少两个,所以定义域区域就比删除域区域多了,所以矛盾。因此D5<>8。 这样理解起来是不是就很清晰了呢?那么,在此总结一下新版删数逻辑:首先按区域为单位寻找鱼身单元格,鱼身单元格可以是任意的形状;然后重新为这些鱼身单元格规划删除域,即“全覆盖”原则;假设定义域或删除域下的某一位置填数情况为真,对结构进行饱和性测试(设为真之后,逐步在结构内找寻填数为真的所有确定位置,直到无法确定最终填数。这样的方式就是饱和性测试),如果得到定义域区域数多于删除域区域数的,或者是直接填数矛盾的,则表明当前位置填数情况为假。这一点被称为鱼的通用删数原则(Fish's Elimination Rule)。其中,位于定义域上的矛盾情况,那么当前位置就被称为自噬鳍。 另外,我们称定义域区域数等于删除域区域数的鱼结构为饱和鱼(Saturated Fish),而定义域区域数少于删除域区域数的鱼结构为过饱和鱼(Supersaturated Fish)。 最后来欣赏一个大型结构(过饱和鲸鱼)。如盘面所示,定义域为行ADFHI和列2。而删除域因为区域过多,所以没有在图上标出。删除域为:行B、列456789和宫789。数一数删除域区域数,就发现一共有10个之多! 当假设B4=2时,运用饱和性测试,可以连续得到定义域上A9=2和G2=2。随之结构剩下这么一些:如盘面所示。剩余结构必然矛盾。因为结构剩下两处摩天楼,都能造成删数,并导致剩下结构的定义域区域数多于删除域区域数的矛盾。比如其中一处摩天楼为 D6(2)=D8(2)-H8(2)=H5(2) => F5, I6<>2 随后得到行F和行I上填2的位置同列(F7和I7)。所以B4<>2。
鱼的构建规则及删数原理 今天我们来讲一个东西,即鱼的删数原理。 构建法则:如果我们能够构建两个区域,一个定义域一个删除域,以每一个候选数或者是一个明数(明数表示题中给出的提示数/已知数,或者是我们根据推理得到的填入的数字,统称为明数),所有结构内的数字均属于至少一个定义域的结构称为鱼。 一个区域肯定是行、列、宫的集合。但请注意,这一法则并不要求我们需要找到的是定义域数量和删除域数量完全一致的鱼结构(此时引出三个定义:不饱和鱼、饱和鱼、过饱和鱼)。 ==================================================================================== 不饱和鱼:定义域数大于删除域数的鱼(这样的鱼结构是不稳定的,因为本身鱼内是不够填数的); 饱和鱼:定义域数恰好等于删除域数的鱼(我们一般理解的鱼); 过饱和鱼:定义域数小于删除域数的鱼(这样的鱼就是我们下面要说到的鱼结构)。 ==================================================================================== 因此,这样的方式,我们可以将带鳍的鱼技巧掌握得更好,并且也能掌握不带鳍的鱼技巧,你仅需要找到位于新增加的删除域的鳍的位置。但是对于删除的候选数来说,要求其实是会更高一些的。 那么,暂时称多余的区域(行、列、宫)称为鳍域(Fin sectors),再加上链的秩理论,则显然有如下的公式: ==================================================================================== 鳍域数量 = 删除域数量 - 定义域数量 鱼结构的秩 = 删除域数量 - 定义域数量 单元格的秩 = 它所处于的删除域数量 - 它所处于的定义域数量 ==================================================================================== 那么,删数法则如下:只要鱼结构(定义域和删除域的集合)的某个单元格的秩大于鱼结构的秩,则这样的候选数能够被删除。文本表述出来它的结构,处于排版需求,每一个单元格都标注了。如C1处的2/0就表示它同时处于2个定义域和0个删除域之中。 首先,我们来观察这样的一个结构。我们约定图上的示例之中,紫色表示定义域,绿色表示删除域。 这样来看,定义域数量一共有5个,但是删除域数量有6个。我们约定,rn、cn、bn(或者写成大写字母的Rn、Cn、Bn)分别表示第n行(Row n)、第n列(Column n)和第n宫(Block n / Box n)的话,那么鱼的表述为 r348c8b1/r12c567b9。其中,鱼的表述为“A/B”或者是“A\B”,A为定义域,B为删除域。 那么,观察此结构,我们发现,定义域和删除域均存在重叠的现象。但是这并不能说明它一定是内鳍和自噬鳍(这两个词语的定义请参看之前的文章,链接将在后面单独发表出来),此时定义域和删除域数量不等,因此不能按照这样的说法进行理解。 此时我们把这些重叠部分用深色标注出来。那么,重叠区域肯定是会被计算两次的,而普通位置则肯定都算一次。那么,根据刚才的鱼的秩公式,计算出结构内每一个单元格的秩。那么,我们观察到盘面之中,+2的所有位置。为什么去观察+2呢?因为数值“+2”(正2)表示的是当前单元格的秩。我们在之前的删数法则之中说到,当某一单元格的秩大于鱼的秩,则此处的位置的这个候选数可删。那么,由于这个鱼的定义域数只有5个,删除域数有6个,鱼的秩为6 - 5 = 1,所以大于1的部分都可以删除,即如下图所示。以下将给出饱和鱼的删数,请按照上述的理论理解它的删数原理,以及自噬鳍的删数规则。 示例1:自噬鳍示例2:过饱和鲸鱼(c245678/r456789b289)
这里要讲一个新的知识点,而这是您从来没有听说过的东西:秩(Rank)。 秩这个东西,我们只在数学上听过它,它用于描述的是数学矩阵在化为最简阶梯矩阵的时候,非全零行的个数。而在数独的链之中,也有这样的定义,不过链没有零的说法,那它代表什么呢? 1.1 强弱区域的定义 我们在讲强弱关系的时候,先看一下强弱关系的第二定义。 当两个数字(节点)不能同时错误的时候,此时我们称它们为强关系;当两个数字(节点)不能同时正确的时候,此时我们称它们为弱关系。 在“数字”一词之后,又加上了“节点”一词,是因为到超链的内容的时候,强关系已经不限制于数字和数字之间了,而是数字集合和数字集合之间,于是在那时,我们将节点的定义重新完善了一次,因此这里说是节点,是相对严谨一些的。 那么,我们类比于这样的定义,我们就可以得到两个新的术语,它们叫做强区域(Truth)和弱区域(Link)。 强弱区域(第二定义): 在位于同一行、列、宫、格内的时候:当至少2个数字(节点)不能同时错误的时候,此时我们称它们位于同一个强区域之内;当至少2个数字(节点)不能同时正确的时候,此时我们称它们位于同一个弱区域之内。 这里先暂时不讨论它们的第一定义的类比情况。我们先来看看一个引例。因为结构比较复杂,您暂时可以不必纠结链的传递过程。如盘面所示。这是一个相对于复杂一点的动态链。链的写法如下所示: HI1(9): =F1(9)-F4(9): =D4(9-6)=C4(6-2)=C3(2)-B3(2)=B7(2(②)) =A4(9)-B5(9(①)) =B1(9)-B5(9=3(①)) -B7(3(②))=A7(3)-A2(3)=H2(3) 结构比较麻烦。上方标注的标号用于表示链的传递的过程。比如“=B7(2(②))”和“-B7(3(②))”处,表示“=B7(2)-B7(3)”,而传递的时候,若链的结束处没有任何标记跳跃,则直接向下一排标注的链传递。链从上往下传递,而不能反着向上。 我们观察到,在出现分支现象的时候,即列1和列4,都有多个相同数字,且它们均出现了分支的情况。例如,观察列1,我们将BFHI1(9)拆成三个部分来看:B1(9)、F1(9)、HI1(9)。这个时候,它们有一个有趣的现象:它们均不可同时删除。这是很明显的,因为在链之中,这几个9同时删除后,这一列就不含有9,这样就会出错。那么,我们可以说,BFHI1(9)处于同一个强区域之中。同理,列4的所有候选数9依然如此。 那么,回到强区域的定义,我们可以发现,强关系的定义其实是包含于强区域的定义之内的。也就是说,强区域的定义可以用来表示强关系,即两个数之间的关系。那么弱区域也是一样。那我们试着数一下这里的强弱区域分别的个数。 通过观察,我们发现,这个链的强区域数是8(行23(2)、列27(3)、列4(6)、列14(9)、B5),而弱区域数是11(行12(3)、行26(9)、H2、CD4、B7、宫1(2)、宫27(9))。 数清楚了之后,链的秩就好计算了。
难度系数评估体系介绍 难度系数评估体系(Sudoku Difficulty Rating System,简称SDRS),是一个以SE软件(Sudoku Explainer,数独分析器,目前最新版本为V1.2.9,后面简称SE软件)为基础测评的一个优化后的评估体系,它能相对比较精确地测试出标准数独的难度。 具体难度分析的方法如下: 将题目用带有难度系数评判的软件进行评测,每一步都以从低难度技巧到高难度技巧的过程搜索盘面内是否存在可用的情况,如果有,则使用掉它,并得到一个难度系数,然后进入第二步。从此我们可以看出,第一步取的是盘面内最小难度技巧的难度系数。同样,在第二步中,也按照第一步的过程获取最小的难度系数。最终,由软件获取到当前题目使用到的最难技巧,并以此技巧所对应的难度系数,作为整个题目的难度系数,此时称题目的难度为题目难度系数(SudokuExplainer Rating,SER或SR)。 具体的SE软件的技巧的难度参照表请参看教程的同一文件夹下的“SE软件难度参照表”文件(左边是难度系数,右边是技巧名称,看不懂则可以直接跳过): 这部分均来自SDRS。英语并没有翻译成中文。目前仅作参考。 另外,在SDRS里,还有一些定义。 --- 魔术格(Magic Cell): 魔术格是指,当前数独盘面中,一旦得出某一个位置上的数值后,全盘立马变为非常简单的题目,那么这个位置被称为魔术格。但要注意的是,魔术格不是每一个数独盘面都存在的,而且,即使有魔术格,但也不一定是“单阶魔术格”(详细内容请参考下面对“阶魔术格”的定义)。也就是说,有一些数独盘面存在魔术格,但也不能一气呵成,还必须进行数次猜解才能够完成整个题目。通常来说,魔术格本身是不可能看出来的,只能靠运气,而且您可能需要买彩票的那种运气才能够猜对。 --- 阶魔术格: 魔术格很多时候都是不能完成全盘的,但有一些神奇的魔术格,可以把当前可能相对较难的题目变成一个相对简单的题目,但只能完成一部分。这个时候就可能存在第二次的魔术格,此时称其为“二阶魔术格”,同理,可能还存在“三阶魔术格”。但请记住的是,所有题一定存在魔术格,在当前盘势若有单阶魔术格,则其魔术格可能不只一个。如果有三阶魔术格的话,如果还想着猜的话,绝对会痛不欲生。 --- 精简题(Minimal Puzzle): 精简题是指,题目的所有提示数都不能缺少。任何一个提示数的缺少都能导致题目出现多解的情况。 --- 珍珠系数(Pearl Rating,简称PR): 珍珠系数是指,题目第一步的难度系数,不管第一步是排除法还是候选数技巧。 --- 钻石系数(Diamond Rating,简称DR): 钻石系数是指,题目中第一个出数的前一步的难度系数。也就是说,如果说,一个题目的第一个出数是靠X-Wing(二链列)出数的,那么PR=3.2。 --- 珍珠题(Pearl Puzzle): 珍珠题是指,题目的第一步必须是候选数技巧,或者说,题目的第一步不能通过直接出数的形式直接得到。也就是说,珍珠系数必然会大于1.5(上述的表格已经给出了)。 --- 极限珍珠题: 极限珍珠题是指,题目的第一个出数之前的那个候选数技巧,它的难度系数等于题目的难度系数的题。这个时候,SER=PR。 --- 钻石题(Diamond Puzzle): 钻石题是指,题目第一步的难度系数等于题目难度系数的题。这个时候,SER=PR=DR。
交叉鱼的形成理论理解 之前我们讲到了宫内鱼,现在又有一种新型形状变异鱼。 我们之前说到宫内鱼的定义。但是,宫内鱼里面不含有一种情况,就是“行 + 列”的情况。这种情况是存在的吗?当然,如下面这个结构就是个例外。如图所示,这是一个定义域为行A、行I和宫6的宫内鱼。很明显,我们能够利用宫内鱼的推理得到它的删除域,即列2、列8和列9。 我们发现,按照宫内鱼的逻辑,是一个一个的假设得到的结论。我们现在把它看成一个整体。 很明显,这6个位置看成整体之后,和旁边的D7、E7、F7这3个位置是相反的填数关系。但是我们发现,刚好能找到列7的B7、C7、G7和H7这4个位置也可以和D7、E7、F7这3个位置构成相反的填数关系。于是,形状就变成了这样。于是我们就简单地变成了这样。此时我们发现,这个时候,宫6的6个x全部转化到列7的4个x了。此时,定义域就发生了变化。此时,定义域变成了行A、行I和列7,而删除域则变成了列2、宫3和宫9。 但是,这样的话,就很奇怪了。定义域变成了行和列。这并不复合宫内鱼的定义。因为这里定义域内出现了行和列同时存在的情况。那么,这种不属于宫内鱼的新型鱼叫做交叉鱼(Mutant Fish)。 那么交叉鱼的定义是如何的呢?交叉鱼的定义是:当定义域或删除域同时含有行和列的时候,此时的鱼就是交叉鱼。但是需要注意的是,行、列、宫全部存在也算同时含有行和列。 所以,很容易理解的是,交叉鱼的定义域必须同时含有行和列,才不属于宫内鱼的定义。我们要注意一点,交叉鱼的定义其实是宫内鱼的互补情况。但是请记住,交叉鱼的一个口诀,即“行列必交叉,交叉必删宫”。意思就是,定义域同时含有行和列的时候,就是交叉鱼了,这前半部分就是交叉鱼的定义了;而后半部分则意味着,行列交叉的位置,如上图的A7和I7这2格,这2格所在的宫也是删除域的一部分。也就是说,A7在宫3内,而I7在宫9内,所以宫3和宫9也是删除域的一部分。这个口诀将非常有用。 接下来,我们再来看看四链列的情况。很明显,这个是一个定义域为行D、行F、行I和宫3的宫内四链列。现在我们变化一下,我们发现,存在于宫内的定义域只有宫3,而我们发现A9、B9、C9这3个位置和另外6格的填数是相对相反的填数关系。我们把宫内的填入情况转换到列9中去。于是就变成了这样:这个是现在的,我们发现,现在的定义域变成了行D、行F、行H和列9。这也是不满足宫内鱼的定义的,所以也算作交叉鱼。 而它们都能残缺吗?当然。很多时候我们都不能找到这种完美的鱼,而一般都是残缺的。那么残缺需要满足什么样的条件呢?它同样是满足前面宫内鱼提到的残缺的充要条件的,即定义域和删除域的每一个部分都至少包含2个x。
宫内鱼的形成理论理解 “/”表示不能填某一个候选数(图中用字母x表示),这样一来,就是一个标准的三链列,定义域用橙色表示,而删除域则用蓝色表示。 我们尝试移动其中的一列。现在三链列仍旧成立,只是由于x位置的移动,删除域发生的一点小变动,但并不影响。我们发现,当“合并”到一起的时候,就存在右边的两格在同一宫内了,此时我们思考,能否将定义域的其中一部分变化到宫内。 例如行B,我们去掉在行B的定义域,然后转化到宫3内。这个时候我们发现,x的位置可以在宫3的删除域内的任意位置都可以,而A9、B9、C9这3格是一定不可能存在x的,这是因为,如果这3格里面存在x了的话,这将导致这个鱼的形状会错开,以致不能删数。于是,就变成了这样。但是删除域是否依然没有变化呢?尚不知道。所以我们采用枚举的情况来假设一下。 由于宫3内有6个可能位置都能填x,那么我们一个一个假设,但是由于A7、B7、C7这3格的假设结果一定是等效的,A8、B8、C8这3格的假设结果一定也是等效的,所以最终就只有2种情况,加上宫3不填的可能,一共是3种情况,其推导过程如下所示: 当A7、B7、C7的其中之一填x的时候,此时我们发现,列7都不能填x了,因此,观察下方行E和行H,由于列7不填的关系,现在列E和列H就只有E2、E8、H2、H8这4格可以填x了,这个时候,刚好构成了一个二链列的结构,因此此时的删除域是列2和列8,但是由于A7、B7、C7存在一格填x的缘故,所以列7的其他位置也不能填x; 当A8、B8、C8的其中之一填x的时候,此时我们发现,列8都不能填x了,因此,观察下方行E和行H,由于列7不填的关系,现在列E和列H就只有E2、E7、H2、H7这4格可以填x了,这个时候,刚好构成了一个二链列的结构,因此此时的删除域是列2和列7,但是由于A8、B8、C8存在一格填x的缘故,所以列8的其他位置也不能填x; 但是,当宫3内的那6格一个x都不填的时候,此时我们发现,宫3将没有一个位置能填x了,因此这个情况是错误的。 此时我们发现,这3种情况除最后一种情况是错误的,被排除了之外,剩下2种情况都能导致列2、列7和列8不能填入x,所以说,原本的删除域其实是没有发生变化的。 上图的结构就被称为宫内鱼(Franken Fish)。宫内鱼的定义是:当某个鱼的定义域或删除域都是属于“a个行 + b个列 + c个宫”,且a和b不同时大于0且c > 0的,则就是宫内鱼。 我们很容易看出来,这样就直接不允许行和列不同时存在了,也就是行宫、列宫的组合。 那么它是否存在残缺的情况呢?是的。我们尝试从宫3开始下手。由于是分两种情况假设,因此至少列7和列8内都得有1个x,因此至少得有2个。但是能不能同行呢?可以,但是就恢复了原来的三链列了,因此此处取不同行的2格填x,因此变成下方的残缺结构:这样就是一个残缺宫内三链列了。但仅仅只是缺少宫内的情况,其实行E和行H内也可以缺少部分位置的x。 我们说,链列残缺的充要条件是定义域和删除域的所有部分中都至少含有2个x,也就是说,图上的定义域(行E、行H、宫3)和删除域(列2、列8和列9)内的每个部分都需要出现至少2个x。那么现在请自行推理并寻找一下能够缺少的位置。 我们尝试思考一个问题,存在宫内二链列吗?答案是肯定的,但是由于它完全等效于一个技巧,所以我们用另外一个技巧找起来非常方便而忽视掉了它,我们来看看。如图就是二链列转变到宫内二链列的图。而下面的这个图就是宫内二链列的残缺情况。这就是一个宫内二链列的简图,不过我们发现,这个图里面,特别是行H的部分,会构成一个区块摒除法,直接可以删除一部分的数字,而且这种结构很容易被找到。所以我们说,宫内二链列完全等价于(级联)区块摒除法,此处可以看成全部都是只能删数的普通区块摒除法而构成的级联区块摒除法。 另外,宫内四链列的简图如下,由于结构复杂,所以不给出推导步骤。这样就构成了宫内四链列。但是要注意的是,四链列不止可以变成这样,其实左边还可以变形到宫内。例如下面就是其中的一个情况。由于宫内二链列会被代替,因而此处不介绍此技巧的使用,只介绍宫内三链列以及宫内四链列及它们的变形。
标准数独技巧交流贴 大家好,我是小向。 由于和江苏大学数独社团的合作,从2017年3月11日起,我将在哔哩哔哩弹幕视频网(网友称为B站,下同)直播标准数独技巧教程课程,时间一般为每周五(或者有可能是周六)的20:00到21:00左右直播标准数独技巧。届时欢迎大家的收看。 另外,B站是一家以ACG为主题的视频网站,网站地址为http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.bilibili.com%2F&urlrefer=031e8bfe3261baa9c2f03bae6fb8a1d6。每一周都会在这里进行通知授课链接,欢迎大家的关注。 注意事项: 1、如果你想学习各种标准数独技巧的话,这将是一个神奇的课程;但如果你想学习基础技巧的速度提升的话,这门课程将不太适合你。 2、课程的时间一般都不会产生变化,具体的时间会在教程直播之前在此帖之中公布。 3、课程需要您自行准备草稿纸和笔记本相关的东西,后面需要做一点点小的笔记。虽然说数独看起来做做题就能明白的一些道理,为什么要安排这个环节呢?这是我让大家强制性的一种总结习惯,多总结才能有更加厉害的技术。 4、本帖除了交流此内容之外,还可以交流你平时遇到的各种标准数独题目的卡点。2楼用于课程安排,3楼开始即为卡点分享。注意,卡点不代表题目一个数字都不填就直接发上来了。 欢迎大家的参与!
所有数独都能全部利用逻辑进行全盘解题吗? 这个问题是大家经常问到的问题,但是目前还是有很多不好回答的因素在里面。现在向大家全部解释清楚。 首先,数独分为标准数独和变形数独。标准数独就只有标准规则,即“填入1~9,使得行列宫内不出现重复数字”。而变形数独则大不一样,因为它们通常会借助标准数独的规则,并创新,做出新的数独题,本身来说,数独是不需要计算的,而杀手数独、Kenken变形等,都是数独的变体类型,它们都称为变形数独,而它们却需要利用基础的四则运算来进行推理与解答。 标准数独需要大量的逻辑推理,这是毋庸置疑的,但是难度参差不齐。题目可以出得很简单,也可以出得非常难。但是形状可以是完全一样的。而变形数独则是另一番场景:它会利用额外的数独规则,来衍生创新出一些新的技巧,例如锯齿数独之中的“割补法”(Law of Leftover,简称LoL)、杀手数独之中的45法则(45-Rule)、90法则(90-Rule)等等。这样就会把原本较难的题目化为较为简单的题目。 但是我们要注意的是,即使这样,题目不一定都能逻辑来解题。这种题目称为“灰色区域”(Grey Zone)。包括我们现在发现的技巧,标准数独来说,大体分为十多个大类,而每个大类都会有很多属于其中的技巧,那么这样算下来,技巧一共有接近200种的样子。 200这个数字以及相当庞大了。但是,标准数独的结果盘面(终盘)来说,一共有约6.67x10^21(667后面接19个0这么多)种数学不等价终盘。也就是说,6.67x10^21个盘面按照电脑的ASCII码来存储这些题目的话,就会有约5.03x10^14GB的文件,而且每一个终盘一般能出多个题目,可见题目是非常之多的。 那么题目多,就很有可能碰到不能逻辑解题的题目。虽然现在出现了各大新闻炒作出来的世界级难题,但这些题目都能找到对应的方式解题(技巧叫做Multisector Locked Sets,简称MSLS,有兴趣的可以参看贴吧精品贴“网”,但此处都仅仅是标准网结构,并未有其他的变形网的使用,需要了解的可以去外国的数独网站去搜索这一技巧,中国大陆目前还没有一个正式文件来详细解释其技巧的原理)。不过技巧需要点数学知识,因此这里不再说明证明和逻辑过程。 而变形数独,则有更加多的技巧了,但是,这些技巧都一般也只能适用于简单的题目,仍然存在题目是属于Grey Zone的。 所以,数独是存在一部分题目不难利用逻辑技巧解题。但是我们一般不会去做这样的题,因为目前题目还不能逻辑解,如果去逻辑解题的话,是完全做不出来的,猜的话,便脱离的推理的本质。不过,您可以去寻找没有发掘的技巧。
难度系数评估体系(SDRS)介绍 难度系数评估体系(Sudoku Difficulty Rating System,简称SDRS),是一个以SE软件(Sudoku Explainer,数独分析器,目前最新版本为V1.2.9,后面简称SE软件)为基础测评的一个优化后的评估体系,它能相对比较精确地测试出标准数独的难度。 具体难度分析的方法如下: 将题目用带有难度系数评判的软件进行评测,每一步都以从低难度技巧到高难度技巧的过程搜索盘面内是否存在可用的情况,如果有,则使用掉它,并得到一个难度系数,然后进入第二步。从此我们可以看出,第一步取的是盘面内最小难度技巧的难度系数。同样,在第二步中,也按照第一步的过程获取最小的难度系数。最终,由软件获取到当前题目使用到的最难技巧,并以此技巧所对应的难度系数,作为整个题目的难度系数,此时称题目的难度为题目难度系数(SudokuExplainer Rating,SER或SR)。 具体的SE软件的技巧的难度参照表如下(左边是难度系数,右边是技巧名称): l 1.0 Single l 1.2 Hidden Single in box l 1.5 Hidden Single in line l 1.7 Direct Pointing l 1.9 Direct Claiming l 2.0 Direct Hidden Pair l 2.3 Naked Single l 2.5 Direct Hidden Triplet l 2.6 Pointing l 2.8 Claiming l 3.0 Naked Pair l 3.2 X-Wing l 3.4 Hidden Pair l 3.6 Naked Triplet l 3.8 Swordfish l 4.0 Hidden Triplet l 4.2 XY-Wing l 4.4 XYZ-Wing l 4.4 W-Wing l 4.5 UR Types 1, 2, 4 l 4.5 UR Type 3 with Hidden Pair l 4.6 UR Type 3 with Naked Pair l 4.6 UR Type 3 with Hidden Triplet l 4.7 UR Type 3 with Naked Triplet l 4.7 UR Type 3 with Hidden Quad l 4.8 UR Type 3 with Naked Quad l 4.6 UL Types 1, 2, 4 (6 cells) l 4.7 UL Types 1, 2, 4 (8 cells) l 4.8 UL Types 1, 2, 4 (10 cells) l 4.9 UL Types 1, 2, 4 (12 cells) l 5.0 UL Types 1, 2, 4 (14 cells) l 5.1 UL Types 1, 2, 4 (16 cells) l 4.6 UL Type 3 with Hidden Pair (6cells) l 4.7 UL Type 3 with Hidden Pair (8cells) l 4.7 UL Type 3 with Hidden Triplet (6cells) l 4.8 UL Type 3 with Hidden Triplet (8cells) l 4.8 UL Type 3 with Hidden Quad (6cells) l 4.9 UL Type 3 with Hidden Quad (8cells) l 4.7 UL Type 3 with Naked Pair (6cells) l 4.8 UL Type 3 with Naked Pair (8cells) l 4.9 UL Type 3 with Naked Pair (10cells) l 5.0 UL Type 3 with Naked Pair (12cells) l 4.8 UL Type 3 with Naked Triplet (6cells) l 4.9 UL Type 3 with Naked Triplet (8cells) l 4.9 UL Type 3 with Naked Quad (6cells) l 5.0 UL Type 3 with Naked Quad (8cells) l 5.0 Naked Quad l 5.2 Jellyfish l 5.4 Hidden Quad l 5.6 Bivalue Universal Graves Type 1 l 5.7 Bivalue Universal Graves Type 2 l 5.7 Bivalue Universal Graves Type 4 l 5.8 Bivalue Universal Graves Type 3with Naked Pair l 5.9 Bivalue Universal Graves Type 3with Naked Triplet l 6.0 Bivalue Universal Graves Type 3with Naked Quad l 6.1 Bivalue Universal Graves Type 3with Naked Quint l 6.2 Aligned Pair Exclusion l 6.5 Bidirectional X-Cycle (6 cells) l 6.6 Bidirectional X-Cycle (8 cells) l 6.6 Turbot Fish l 6.6 Forcing X-chain (5-6 nodes) l 6.7 Forcing X-Chain (7-8 nodes) l 6.8 Forcing X-Chain (9-12 nodes) l 6.9 Forcing X-Chain (13-16 nodes) l 6.5 Bidirectional Y-cycle (3 cells) l 6.6 Bidirectional Y-cycle (4 cells) l 6.7 Bidirectional Y-cycle (5 cells) l 6.8 Bidirectional Y-cycle (6-7 cells) l 6.9 Bidirectional Y-cycle (8-9 cells) l 7.0 Bidirectional Y-cycle (10-13cells) l 7.0 Bidirectional Cycle (6 nodes) l 7.1 Bidirectional Cycle (8 nodes) l 7.2 Bidirectional Cycle (10 nodes) l 7.3 Bidirectional Cycle (12 nodes) l 7.0 Forcing Chain (5 nodes) l 7.1 Forcing Chain (7 nodes) l 7.2 Forcing Chain (9 nodes) l 7.3 Forcing Chain (11-13 nodes) l 7.4 Forcing Chain (15-17 nodes) l 7.5 Forcing Chain (19-25 nodes) l 7.6 Forcing Chain (27-more nodes) l 7.5 Aligned Triplet Exclusion l 7.6 Nishio Forcing Chain (5-6 nodes) l 7.7 Nishio Forcing Chain (7-8 nodes) l 7.8 Nishio Forcing Chain (9-12 nodes) l 7.9 Nishio Forcing Chain (13-16nodes) l 8.0 Nishio Forcing Chain (17-24nodes) l 8.1 Nishio Forcing Chain (25-36nodes) l 8.2 Multiple (7-8 nodes) RegionForcing Chains l 8.3 Multiple (9-12 nodes) Cell/RegionForcing Chains l 8.4 Multiple (13-16 nodes)Cell/Region Forcing Chains l 8.5 Multiple (17-24 nodes)Cell/Region Forcing Chains l 8.6 Multiple (25-36 nodes)Cell/Region Forcing Chains l 8.6 Dynamic (5-6 nodes) Cell/RegionForcing Chains l 8.7 Dynamic (7-8 nodes) Cell/RegionForcing Chains l 8.8 Dynamic (9-12 nodes) CRCD ForcingChains l 8.9 Dynamic (13-16 nodes) CRCDForcing Chains l 9.0 Dynamic (17-24 nodes) CRCDForcing Chains l 9.1 Dynamic (25-36 nodes) CRCDForcing Chains l 9.2 Dynamic (37-48 nodes) CRCDForcing Chains l 9.3 Dynamic (49-72 nodes) CRCDForcing Chains l 9.4 Dynamic (73-96 nodes) CRCDForcing Chains l 9.3 Dynamic + (9-12 nodes) CRCDForcing Chains l 9.4 Dynamic + (13-16 nodes) CRCDForcing Chains l 9.5 Dynamic + (17-24 nodes) CRCDForcing Chains l 9.6 Dynamic + (25-36 nodes) CRCDForcing Chains l 9.7 Dynamic + (37-48 nodes) CRCD ForcingChains l 9.8 Dynamic + (49-72 nodes) CRCDForcing Chains l 9.9 Dynamic + (73-96 nodes) CRCDForcing Chains l 10.0 Dynamic + (97-144 nodes) CRCDForcing Chains l 10.1 Dynamic + (145-192 nodes) CRCDForcing Chains l 10.0 Dynamic + Forcing Chains (17-24nodes) CRCD Forcing Chains l 10.1 Dynamic + Forcing Chains (25-36nodes) CRCD Forcing Chains l 10.2 Dynamic + Forcing Chains (37-48nodes) CRCD Forcing Chains l 10.3 Dynamic + Forcing Chains (49-72nodes) CRCD Forcing Chains l 10.4 Dynamic + Forcing Chains (73-96 nodes)CRCD Forcing Chains l 10.5 Dynamic + Forcing Chains (97-144nodes) CRCD Forcing Chains l 10.6 Dynamic + Forcing Chains(145-192 nodes) CRCD Forcing Chains l 10.7 Dynamic + Forcing Chains(193-288 nodes) CRCD Forcing Chains l 10.8 Dynamic + Forcing Chains(289-384 nodes) CRCD Forcing Chains l 10.9 Dynamic + Multiple ForcingChains (73-96 nodes) CRCD Forcing Chains l 11.0 Dynamic + Multiple ForcingChains (97-144 nodes) CRCD Forcing Chains l 11.1 Dynamic + Multiple ForcingChains (145-192 nodes) CRCD Forcing Chains l 11.2 Dynamic + Multiple ForcingChains (193-288 nodes) CRCD Forcing Chains l 11.3 Dynamic + Multiple ForcingChains (289-384 nodes) CRCD Forcing Chains l 11.4 Dynamic + Multiple ForcingChains (385-576 nodes) CRCD Forcing Chains l 11.4 Dynamic + Dynamic Forcing Chains(73-96 nodes) CRCD Forcing Chains l 11.5 Dynamic + Dynamic Forcing Chains(97-144 nodes) CRCD Forcing Chains l 11.6 Dynamic + Dynamic Forcing Chains(145-192 nodes) CRCD Forcing Chains l 11.7 Dynamic + Dynamic Forcing Chains(193-288 nodes) CRCD Forcing Chains l 11.8 Dynamic + Dynamic Forcing Chains(289-384 nodes) CRCD Forcing Chains l 11.9 Dynamic + Dynamic Forcing Chains(385-576 nodes) CRCD Forcing Chains l 12.0 Dynamic + Dynamic Forcing Chains(577-more nodes) CRCD Forcing Chains 这部分均来自SDRS。英语并没有翻译成中文。目前仅作参考。 另外,在SDRS里,还有一些定义。 魔术格(Magic Cell): 魔术格是指,当前数独盘面中,一旦得出某一个位置上的数值后,全盘立马变为非常简单的题目,那么这个位置被称为魔术格。但要注意的是,魔术格不是每一个数独盘面都存在的,而且,即使有魔术格,但也不一定是“单阶魔术格”(详细内容请参考下面对“阶魔术格”的定义)。也就是说,有一些数独盘面存在魔术格,但也不能一气呵成,还必须进行数次猜解才能够完成整个题目。通常来说,魔术格本身是不可能看出来的,只能靠运气,而且您可能需要买彩票的那种运气才能够猜对。 阶魔术格: 魔术格很多时候都是不能完成全盘的,但有一些神奇的魔术格,可以把当前可能相对较难的题目变成一个相对简单的题目,但只能完成一部分。这个时候就可能存在第二次的魔术格,此时称其为“二阶魔术格”,同理,可能还存在“三阶魔术格”。但请记住的是,所有题一定存在魔术格,在当前盘势若有单阶魔术格,则其魔术格可能不只一个。如果有三阶魔术格的话,如果还想着猜的话,绝对会痛不欲生。 精简题: 精简题是指,题目的所有提示数都不能缺少。任何一个提示数的缺少都能导致题目出现多解的情况。 珍珠系数(Pearl Rating,简称PR): 珍珠系数是指,题目第一步的难度系数,不管第一步是排除法还是候选数技巧。 钻石系数(Diamond Rating,简称DR): 钻石系数是指,题目中第一个出数的前一步的难度系数。也就是说,如果说,一个题目的第一个出数是靠X-Wing(二链列)出数的,那么PR=3.2。 珍珠题: 珍珠题是指,题目的第一步必须是候选数技巧,或者说,题目的第一步不能通过直接出数的形式直接得到。也就是说,珍珠系数必然会大于2.5(上述的表格已经给出了)。 极限珍珠题: 极限珍珠题是指,题目的第一个出数之前的那个候选数技巧,它的难度系数等于题目的难度系数的题。这个时候,SER=PR。 钻石题: 钻石题是指,题目第一步的难度系数等于题目难度系数的题。这个时候,SER=PR=DR。 (后续还会更新,希望大家前来阅读并且指正说法。)
【标准数独技巧教程】变异链列 ---> 鳍型链列(Finned Fish) 链列是一种很神奇的技巧,但是往往在出现的时候,并不是那么频繁,而往往会多出来一点点。这也就产生了两种变异类型。下面将讲解其中的一种。 例如这个盘面(盘面25)。盘面 25 这个盘面中,我们发现有一个二链列,不过很怪异。 我们很容易地发现,这个二链列的定义域是列6和列7,很明显,摒除域是行B和行D。可是不巧的是,这个关于数字7的二链列多出了一格,位于A6。于是尝试消除掉它。 如果说它本身不存在的话,那么列6和列7就只有B6、B7、D6、D7这4格填入7了,很明显,这样肯定是构成二链列的,那么根据二链列的逻辑推理的话,摒除域应为行B和行D;但是如果A6的7是存在的,那么这个7就会导致行A、列6和宫2内的其余单元格内都不能填入7。 但是列6和列7也就这有这5格可以填,别无其它情况。那么我们就知道,这两种情况必然有1种成立,因此删除掉这2种情况都能够删除掉的位置,我们发现,这两种情况都能删的位置只有B4和B5,而B5已经有数字了,那么只能是B4。因此B4≠7。 这种“差一点”的链列被称为鳍型链列,其中的那个多出来的单元格被称之为鳍(Fin),那为什么叫鳍呢?因为链列一词的英文名是Fish,也就是鱼的意思,那么多出来的就被理所当然地翻译成了鳍。而它的定义域和摒除域依然是针对链列本身的。那么,鳍在哪里才能够算作鳍型链列呢?鳍必须得位于二链列的定义域内,且必须位于二链列的4个顶点处的同一个宫内。这是为什么呢?因为,我们对标准二链列阵的推理方式就是选中定义域的其中1个,然后分情况讨论,最终能够得到相同的结论,因此得到摒除域,删掉摒除域内的单元格的数字。这里多了一个鳍,那么就假设鳍成立和鳍不成立,于是也就分成了两种情况。那么,鳍是否只能是1个呢?当然不是,如下面这个例子,就是2个鳍。盘面26 盘面26就是2个鳍构成的二链列。要么二链列成立,要么旁边的2个鳍成立,虽然很明显,2个鳍不得同时成立,但是目前看来,至少都得有1种情况成立。无论是它们之间的哪一个,都会导致宫4内和行F内的其余单元格都不能填入9了。由于此时,行F已经没有可以删除9的位置了,因此只能去看宫4内的位置了。无论是二链列成立还是鳍成立,必然都会使得既在宫4、又在列1内的D1和E1删除掉9。因此,D1, E1≠9。但要拥有这样的推理的话,多个鳍必须位于同一宫内,否则它就不是鳍型链列了。当然,三链列也同样存在鳍型链列。如盘面27所示。盘面27 同理,分2种情况,要么是这个缺省的三链列成立,要么是鳍成立。因此删除掉都能删掉的部分,即C4的7。盘面 28 盘面28所示的鳍型四链列。分2种情况,要么缺省的四链列成立,要么是这个鳍成立。因此删除掉都能删掉的部分,即C1和C3的2。 这些就是鳍型链列的所有情况了,不过,它还能简化吗?请看下一节。 ---> 鳍型退化链列(Sashimi Fish) 刚才讲到了鳍型链列阵,但是它还能不能再简化呢?当然是可以的。不过,这种链列就更加奇怪了,而且长相变化多端。先来看一个“简化版”。盘面 29 如盘面29所示。这里有一个类似于鳍型链列的形状:定义域为列2和列8,鳍位于D8。但是又有点不一样的地方,在离鳍最近的二链列的那只“腿”不见了,不过没关系。 根据鳍型链列的推理方法,要么二链列成立,要么鳍成立。但是我们发现了一个问题,二链列缺了一只腿。此时我们回忆二链列的逻辑推理方法:如果这个时候,这个二链列在没有缺腿的情况时,我们是按照定义域来分别假设出两种不同的情况,最后会得到的填数情况,在这个二链列中,要么是左上(F2)和右下(H8)的2格填,要么是右上和左下(H2)2格填。现在右上角缺了一只腿,那么后者就不成立了。那么,综合鳍型链列的说法,要么鳍成立,要么二链列的其中一种情况成立,也就是左上和右下成立。现在我们就要考虑一下,到底怎么推理了。 首先,思考一下位于二链列左下的单元格H2填入7,刚才说到要么是左上(F2)和右下(H8)的2格填,要么是鳍(D8)填。但是这都和H2没有关系。那么它能不能也删除掉呢?这显然是不可以的。因为,它有可能单个成立。为什么呢?这个时候我们连上鳍一起,看看它是否可能单个存在。 在这个鳍型退化链列中,候选数7的填法只有2种情况,要么是F2, H8=7,要么是D8, H2=7。H2=7的情况存在于后者,所以H2是可能填7的。 二链列只能删除摒除域,也就是行F和行H的其余单元格的7;而鳍能够删除掉行D、列8和宫6内的7。但是不管是哪种情况,二链列都是成立的。因此摒除域依然不会变化,而鳍是另外一种情况,所以删除掉它们共同对应的位置,也就是F7和F9。F9已经有数字了,所以F7≠7。 这个叫做鳍型退化链列的解法英文名叫做Sashimi Fish,其中的Sashimi其实是一个日语词汇的罗马音得到的,它的原意是“生鱼片”(罗马音:Sashimi,日语:刺(さし)身(み))。起名的原因不明,有一种说法是由于链列的英文跟“鱼”有关,于是取的名字。 这种链列由两部分构成,一部分是鳍,而另一部分则是退化(Degenerated)后的链列。退化链列不能单独使用,因为没法正常地完成推理,缺少了一只腿使得原来的缺腿和其对角位置上的另外一个并不能组成一对了,因为其中的一格已经不存在了,所以这就需要和鳍一起进行推理才能得到结论了。这时候就总结一下这种链列的推理思路:假设鳍成立和不成立,就分成了两种情况,这两种情况会同时导致鳍所在的宫和链列的摒除域的共同对应的位置不能填,因此删掉它们。而之前提到的“缺省链列”是可以依然推理的,请注意“缺省”和“退化”这两个词语的区分。 这种鳍型退化链列是最为标准的形式,当然,它也有其他的变异情况。盘面 30 如盘面30所示,这是盘面29中的另外一个鳍型退化链列。这是由两个鱼鳍构成的鳍型退化链列。这种情况同样只能删A4和A5的9。我们按照鳍型退化链列的思路,要么鳍和左下角(I2)成立,要么是A2和I6的9成立。二链列中,就只剩下“仅I2成立”和“A2和I8成立”这2种情况了。这样的二链列也是成立的,所以删除的是二链列的摒除域,即行A和行I。但是那2个鳍使得它们的共同对应的位置变成了A4和A5,因此,A4, A5≠9。盘面31 这又是一种链列变型,同刚才的推理方式,不过鳍并不是连在一起的。您可以自行进行推理,这同样是可以得到结论的。 了解到上述的思路后,接下来是鳍型退化三链列。盘面 32 如盘面32所示。原本是一个最简的三链列,定义域为列2、列5和列8,然而不巧的是,构成三链列的必要单元格之一(A2)缺失了。这样,三链列就退化了。假设鳍成立的话,行B、列2和宫1内的其他单元格内必然不填数字5;如果鳍不成立的话,对于这个退化三链列来说,I2一定为5,E5一定为5,A8一定为5。于是,就有这两种情况,要么B2=5,要么I2, E5, A8=5。无论如何,都会导致宫1和行A的公共部分都不能填入5。因此,A1, A3≠5。 但是,这个题目还可以删除掉B7的5(图上未给出标注)。那么,这个又是怎么回事呢? 我们不妨切换一下思维,将图上A8的5看成鳍,而B2的5看作退化三链列的一部分。推理过程同刚才的盘面31。不过由于鳍的位置切换到了宫3,所以三链列变成了宫3和行B的公共部分,所以B7和B9不能填5。由于B9本来就没有候选数5,所以只有B7≠5。 这个就是鳍型退化链列。当然,也存在四阶的情况,此处将不再展示。
【标准数独技巧教程】链列阵删减法 之前我们讲到了数对、三联体和四联体(数组)的占位法和唯余法,但是候选数的技巧完全不止这一点。接下来的技巧一定会让你大开眼界。它比起数组要好玩得多,因为它可以构成一种特殊的形状。 ---> 二链列/四角对角线法则 (X-Wing)盘面 19 如盘面19所示。当填到这里的时候,发现数对已经填不下去了。此时,我们可以观察到,在行A中,只有A2和A6可以填入6;而在行H中,只有在H2和H6可以填6。它们刚好构成一个矩形。可是这有什么用呢? 我们不妨假设一下(请在图上找到对应单元格,并进行推理): 情况1:如果A2填6的话,那么A6和H2将不能填6,那么就只有H6填6了; 情况2:如果A6填6的话,那么A2和H6将不能填6,那么就只有H2填6了。 只有这两种情况了。我们可以看到,情况1的假设是“A2=6”,结论是“H6=6”;而情况2的假设是“A6=6”,结论是“H2=6”。将这两种情况分别放到图上看,我们可以发现,无论是左上角(A2)和右下角(H6)填6,还是右上角(A6)和左下角(H6)填6,都会使得列2和列6出现一个6。所以列2和列6的其余位置,即非这个“矩形”的四个顶点外的其余单元格内,都将不再出现6的身影。因此,C6, G6, I2, I6≠6。 把每一条假设的开头位置和结尾位置连接起来,会发现它组成了X的形状。所以这个解法的英文名由此得来——“X-Wing”。在英语中,wing是翅膀的意思,就像一个展开的翅膀一样。它有一个独特的名称——四角对角线法则。 有意思的是,这种方法还能够拓展到三阶的情况。这也就是为啥它还有一个名字,叫做二阶链列阵了(以下均将“链列阵”简称为“链列”)。 在盘面19的二链列中,我们将产生二链列的单元(图中的行A和行H)叫做定义域(Defining Set),表示二链列被定义的位置;并将需要排除候选数的单元(图中的列2和列6)称为摒除域(Secondary Set),表示用于排除该候选数的位置。这到后面的链列阵的变型中会非常常用。 ---> 三链列/剑鱼删减法 (Swordfish) 三阶链列阵比起二链列的情况会多一些,因为它需要更多的假设和推理。例如下面的这个盘面:盘面 20 如盘面20所示,此时我们观察到,在行C、行F和行H都有且仅有列标为5、6、7的单元格可以填,所以,4在这3行里被控制在那9个单元格内。这时候就假设一下: 情况1:如果C5=4,则F5, H5, C6, C7≠4,解不出,就继续假设:   A.如果F6=4,则F7, H6≠4,则H7=4;   B.如果F7=4,则F6, H7≠4,则H6=4; 情况2:如果C6=4,则C5, C7, F6, H6≠4,解不出,就继续假设:   A.如果F5=4,则F7, H5≠4,则H7=4;   B.如果F7=4,则F5, H7≠4,则H5=4; 情况3:如果C7=4,则C5, C6, F7, H7≠4,解不出,就继续假设:   A.如果F5=4,则F6, H5≠4,则H6=4;   B.如果F6=4,则F5, H6≠4,则H5=4。 此时,我们发现,假设情况均列出了。由于第一次假设并不能完成推理,因此中途又进行了第二次假设,才完成了整个推理过程。对比这6种情况的假设开头以及结尾,可列出下表:我们发现,无论是哪种情况的假设,始终都会使得列5、列6和列7上至少都有一个4。也因此,列5、列6、列7的其他位置上,候选数4将可以被安全地删掉,亦即图上的A5、A6、B5、B7、D5、D7、G5内的候选数4均将被删除。这就是三链列。注意,此题的三链列的定义域为行C、行F和行H,摒除域为列5、列6和列7。 但是,图中有一个奇怪的地方。图上有一个宫摒除法,是H5=8,由B6、G1和I8的8在宫8内摒除得到的。填入了这个8之后,就会发现一大堆摒除法,还有两个唯一余数法,于是就一口气做到了这里:盘面 21 如盘面21所示,原来的三链列残缺成了这样(缺了一个“角”),那么它是否还是可用的呢?答案肯定是可以的。这并不影响三链列的用法。假设会比刚才的要少,但是仍能推理,并且把所有假设集合在一起,同样可以使得列5、列6、列7都至少有一个4的出现。此处将不列举其假设,请自行推理。这种也被称为链列缺省(Incomplete)。 但是,应注意的是,最简三链列的阵型应满足“每个定义域和每个摒除域内都需要保证2个单元格”。 ---> 四链列/水母删减法 (Jellyfish)盘面22 其实,四链列和三链列的推理方式大同小异,但是要注意的是,例如盘面22,它的定义域是列2、3、7、8,而摒除域则是行A、B、D、G。此处省略其假设情况,请自行推理(四链列的出现频率是极低的,很难碰到,所以此处并没有重点讲解)。 结论应为:行A、行B、行D、行G中剩余单元格内将删除候选数9。 但是,四链列也同样具有部分单元格缺省的情况,而且相对于盘面23,缺少的更为常见。例如下方的这个四链列结构:盘面23 此处,四阶链列阵所涉及的单元格仅仅只有8格,但是仍然可以进行推理。不过,它只有两种情况了。 如果A1=8,则I1≠8,则I2=8,则F2≠8,则F5=8,则G5≠8,则G6=8,则A6≠8;反过来也就得到了I1、F2、G5、A6都为8了。但无论是那种情况,列1、列2、列5、列6内都不得在其余单元格内出现8。因此删掉它们。 链列缺省需要满足每个定义域和每个摒除域内都需要保证有2个单元格。这是所有链列都需要满足的情况。 ---> 高阶链列(Squirmbag/Starfish, Whale, Leviathan) 高阶链列阵(简称高阶链列)是当阶数大于4后的情况。这样的技巧也同样存在,但是和n>4的数组一样,只存在于理论之上。这是因为它(高阶链列阵)会被与其正交的链列阵完全替换,原链列和可用于替换的链列的阶数和盘面尺寸无关。 根据上述加粗文字可列出下表,从下表中就可了解到高阶链列阵的一些详细情况了:从上表中,你也能够看出,为什么不存在八链列的说法。 下面的盘面24将展示五链列的其中一个例子。黄色数字1为被删除情况,绿色1为五链列,它也属于缺省的情况。不过,它可以转化成一个关于候选数1的三链列。盘面24 习题: 1. 在标准的X-Wing(二链列)中,所涉及的单元格数量最少可以是(  )个。 A.1    B.2     C.3    D.4 2. 请找出图中二链列的位置:单元格组_____________________的候选数(  )。3. 请找出图中三链列和四链列的位置: 三链列:   单元格组________________________________________________;   关于候选数(  )。 四链列:   单元格组________________________________________________;   关于候选数(  )。
链列的所有标准和变形的简图一览表 链列是什么? 链列是一种解题技巧。 例如下图所示。在行 A 和行 H 刚好只有 A2 和 A6 可以填入 6 ;而在行 H 中,只有在 H2 和 H6 可以填 6 。它们刚好构成一个矩形。可是这有什么用呢? 我们不妨假设一下(请在图上找到对应单元格,并进行推理): 情况1:如果 A2 填 6 的话,那么 A6 和 H2 将不能填 6 ,那么就只有 H6 填 6 了; 情况2:如果 A6 填 6 的话,那么 A2 和 H6 将不能填 6 ,那么就只有 H2 填 6 了。 只有这两种情况。我们可以看到, 情况1的假设是“A2=6”,结论是“H6=6”; 情况2的假设是“A6=6”,结论是“H2=6”。 将这两种情况分别放到图上看,我们可以发现,无论是左上角(A2)和右下角(H6)填6,还是右上角(A6)和左下角(H6)填6,都会使得列2和列6出现一个6。所以列2和列6的其余位置,即非这个“矩形”的四个顶点外的其余单元格内,都将不再出现6的身影。因此,C6, G6, I2, I6≠6。 把每一条假设的开头位置和结尾位置连接起来,会发现它组成了X的形状。所以这个解法的英文名由此得来——“X-Wing”。在英语中,wing是翅膀的意思,就像一个展开的翅膀一样。它有一个独特的名称——四角对角线法则。 当然,这个可以扩展到3 x 3和4 x 4的情况。现在我将所有的情况(简图)依次列举到此处。 注释: x 表示当前单元格内含有候选数a / 表示当前单元格内不含有候选数a # 表示 EndoFin * 表示如果所有鳍全错的话可删除的位置 ** 表示不管鳍的正误,都能删的位置 *x 表示根据基础候选数所删的位置 (AutoCannibalistic,Cannibalistic请详见Hodoku官网对此的解释)1、宫内列摒除法 2、列内宫摒除法 =====================================1、二链列 2、二链列 3、宫内二链列(franken x-wing) 4、宫内二链列(franken x-wing) 5、鳍式复合退化二链列(sashimi mutant x-wing) 6、鳍式复合退化二链列(sashimi mutant x-wing) 7、鳍式复合退化二链列(sashimi mutant x-wing) 8、鳍式复合退化二链列(sashimi mutant x-wing) =====================================1、三链列 2、三链列 3-1、宫内三链列(franken swordfish) 4-1、宫内三链列(franken swordfish) 其中,3和4具有1个等价异构盘面(删数效果一致但结构不一致的):3-2、复合三链列(mutant swordfish) 4-2、复合三链列(mutant swordfish)5、复合三链列(mutant swordfish) 6、复合三链列(mutant swordfish) 7、鳍式复合退化三链列(sashimi mutant swordfish (x-wing + intersection) ) 8、鳍式复合退化三链列(sashimi mutant swordfish (x-wing + intersection) ) 9、鳍式宫内式退化三链列(sashimi franken swordfish (cascading locked candidates) ) 10、鳍式宫内式退化三链列(sashimi franken swordfish (cascading locked candidates) ) 11、鳍式复合退化三链列(sashimi mutant swordfish (cascading locked candidates) ) 12、鳍式复合退化三链列(sashimi mutant swordfish (cascading locked candidates) ) =====================================1、四链列 2、四链列 3-1、宫内四链列(franken jellyfish) 4-1、宫内四链列(franken jellyfish) 其中,3和4都具有2个等价异构盘面(删数效果一致但结构不一致的):3-2、复合四链列(mutant jellyfish) 4-2、复合四链列(mutant jellyfish)3-3、复合四链列(mutant jellyfish) 4-3、复合四链列(mutant jellyfish)5、复合四链列(mutant jellyfish) 6、复合四链列(mutant jellyfish) 7-1、宫内四链列(franken jellyfish) 8-1、宫内四链列(franken jellyfish) 9-1、宫内四链列(franken jellyfish) 10-1、宫内四链列(franken jellyfish) 其中的7-10各有1个等价异构盘面:7-2、复合四链列(mutant jellyfish) 8-2、复合四链列(mutant jellyfish) 9-2、复合四链列(mutant jellyfish) 10-2、复合四链列(mutant jellyfish)11、鳍式复合退化四链列(sashimi mutant jellyfish) 12、宫内四链列(4-fish r468b2\c258b5) 13、鳍式宫内退化四链列(sashimi franken jellyfish (franken swordfish c278\r58b3 + 1-fish c5\b2) ) 14、鳍式宫内退化四链列(sashimi franken jellyfish) 15、鳍式唯余式退化四链列(sashimi mutant jellyfish) 16、鳍式唯余式退化四链列(sashimi mutant jellyfish) 17、鳍式复合退化四链列(sashimi mutant jellyfish (swordfish + 1-fish) ) 18、鳍式复合退化四链列(sashimi mutant jellyfish (swordfish + 1-fish) ) 19、鳍式复合退化四链列(sashimi mutant jellyfish (swordfish + 1-fish) ) 20、鳍式复合退化四链列(sashimi mutant jellyfish (swordfish + 1-fish) ) 21、鳍式复合退化四链列(sashimi mutant jellyfish (swordfish + 1-fish) ) 22、鳍式复合退化四链列(sashimi mutant jellyfish (swordfish + 1-fish) )23、鳍式复合退化四链列(sashimi mutant swordfish) 24、鳍式复合退化四链列(sashimi mutant swordfish)
1 下一页