欢迎光临散文网 会员登陆 & 注册

第 59 讲:交叉鱼的示例

2021-09-12 09:08 作者:SunnieShine  | 我要投稿

本来打算放在前一节里面,但是因为内容太多了,所以放在前面会导致同一讲内容特别多,我就拆成两讲了。

Part 1 交叉鱼的示例

如图所示,这是一个交叉三链列(Mutant Swordfish)结构。可以看到,这种交叉三链列残缺的现象非常严重。不过,它依然没有影响我们的删数。

接下来我们再来看两则交叉三链列的示例。

如图所示,这个结构便是我们在构型里讲到的,同时涉及全部区域类型的交叉三链列结构。这种构型神奇的地方就在于,例子高度对称,定义域和删除域总体构成的是一个完全中心对称的形状,非常漂亮。

如图所示,这是另外一则和上一则构型一样的示例。这则示例也不必过多叙述逻辑,依旧是满足定义域和删除域区域数相同,以及全覆盖要求。

Part 2 交叉四链列

接下来我们来看一些交叉四链列(Mutant Jellyfish)的例子。

如图所示,这个结构选取了r238c7作为定义域,圈出了所有3后,又接着找到了c25b39作为结构的删除域,也满足了全覆盖的要求,区域数也相同,都是4个。所以,我们就保证了删数的成立。

如图所示,这个结构和上一则的构型相同,只是这一则示例可能残缺情况要比上一则要严重一点。

接着。

如图所示,这一则示例的定义域只涉及两行和两个宫,所以它是宫内鱼而不是交叉鱼?并不,因为删除域涉及的是三列一行,按照定义规定,删除域也满足要求的话,也应当算交叉鱼。所以实际上,这个示例是原构型的转置后的样子。

如图所示,这个示例给出了一个涉及两行两列定义域,而删除域确实涉及一行一列两个宫的结构。这个结构虽说长相特殊和奇怪,但是删数确实是正确的,它满足之前提到的两大要求。所以红色的2都可以删除。

接下来我们再来看一则和这个构型一样的示例。

如图所示,这个结构便是和上面那一则示例构型一样的例子。这则示例里依旧满足鱼能够删数的两大要求9,所以结构是成立的。

Part 3 外鱼鳍交叉鱼

3-1 外鱼鳍交叉三链列

接下来我们来看一些有关带有鱼鳍的交叉鱼的示例。和宫内鱼结构一样,我们至少从三阶开始介绍。

如图所示,这个示例里给出了两行一列的定义域。不过,如果我们把r5c7(4)算作鱼的一部分,就会发现它将会单独占据一个删除域区域,这样非常“不划算”,而且无法分配删除域区域能够合适地让每一个候选数都能被覆盖到,而且只需要三个删除域区域就做得到。所以,我们只得让它作为结构的鱼鳍。

当它为假时,其余位置就全覆盖了,而且恰好结构形成一个交叉三链列,删数是成立的;而当它为真的时候,它只能删除掉它自己的相关单元格的4,当然这也包括了r5c3(4),所以,不论鱼鳍的真假,删除的地方总含有r5c3(4),所以r5c3 <> 4。

3-2 外鱼鳍交叉四链列

如图所示,我们尝试选取r38c57四个区域里的所有5作为鱼的定义域,就会发现,我们怎么分配删除域,r2c7(5)都会比较特殊。要么为其单独分配一个删除域区域,但是这样就会让结构多出一个删除域区域,怎么也无法找到恰好四个删除域区域能满足全覆盖的要求。所以,我们不得不把r2c7(5)作为鱼鳍处理。

假设它为假,则交叉四链列结构就全覆盖了,区域数也是一致的,所以满足要求,删除域的其余位置的5都可以删除;但是由于鱼鳍的存在,我们只能删除掉鱼鳍可以对应到的删除域的单元格上的5,即此时只有r2c468(5)可以删除,所以r2c468 <> 5。

如图所示,这一则示例和上一则的推导方式完全一样,只是这一次结构带有两个鱼鳍,而且残缺比较严重,所以看起来结构甚至有点不太像是一个鱼。

不过不要紧,如果我们把r4c1(2)和r5c7(2)去掉,结构确实满足了区域数一致和全覆盖要求,所以删数肯定是可以保证的,只是鱼鳍的存在只能删除掉两个鱼鳍和删除域的交集,所以此时只能删除掉的是r5c2(2)。

3-3 外鱼鳍交叉五链列

之前说过,交叉鱼存在一部分结构不方便转回宫内鱼的形式,所以交叉鱼的规格上限并非是4,比如下面的这几则示例,都是规格至少为5的交叉鱼。

如图所示,这个结构的定义域为r358c49,而删除域则是r6c378b2。如果我们不把r1c9(4)视作鱼鳍的话,就无法找到全覆盖的情况,所以我们只能当它为鱼鳍。

当r1c9(4)为假的时候,交叉五链列(Mutant Squirmbag/Starfish)结构成立,所有删除域上其余位置的4都可以删掉;而当鱼鳍为真的时候,只能删除掉鱼鳍能对应到的删除域上的位置的4,所以只有r1c7(4)和r2c8(4)可以删除。

如图所示,如果去掉r2c3(4)和r4c7(4),r2c1247五个区域的所有剩余的4可以作为定义域的数字,然后选出五个删除域r378b34做到全覆盖的要求。所以删除域上的其余的4都可以删除。但是,r2c3(4)和r4c7(4)也可以至少一个成立,这也是一种情况。所以我们删除的位置只有它们的交集对应在删除域上的位置的4,所以只有r4c3(4)。

如图所示,如果将r4c3(4)和r8c2(4)作为鱼鳍处理的话,r4c1249作为定义域,而r2359b5作为删除域,交叉五链列就成立了。而鱼鳍的客观存在只能保证删数只可以产生在交集上,所以删数只有r9c3(4)。

最后我们再给出两则带有三个鱼鳍的示例。因为示例非常不好观察到,所以仅仅作为参考和欣赏,提供理论逻辑的学习。

如图所示,这两则示例都比较难以观察到。所以,提供理解就可以了。

同样,下面给出的两则有关六链列和七链列的例子都是比较大型的结构,它们也不容易观察到,所以仅供参考。

3-4 外鱼鳍交叉六链列

接下来我们来看一个有关于交叉六链列(Mutant Whale)的带鱼鳍的版本的例子。

如图所示,如果把r3c4(7)去掉,则这个结构的定义域为r268c14b9,一共涉及六个区域,而删除域则是r79c258b4,也是六个区域,也满足了全覆盖的要求,所以鱼结构是成立的;而鱼鳍的存在,导致删数只能找能对应的地方,所以此时可以对应到的地方有r3c258(7)和r1c5(7),但是很显然的是,删数只有r3c5(7),因为只有这一个单元格含有候选数7。

3-5 外鱼鳍交叉七链列

如图所示,如果不看r1c5(6)和r5c6(6),则r158c1379将构成一个标准的交叉七链列(Mutant Leviathan),而删除域则是r346c48b79。删数的逻辑就不阐述了。

Part 4 内鱼鳍交叉鱼

4-1 内鱼鳍交叉三链列

下面我们来看一些含有内鱼鳍的示例。

如图所示。如果将r1c1(3)去掉,排除r1和c1重叠的影响,交叉三链列结构就会成立,删数就在删除域的位置上。不过,r1c1(3)客观存在,所以当作内鱼鳍,删除掉的是这个位置和删除域区域的交集,所以此时只有r3c23(3)可以删除。

4-2 内鱼鳍交叉四链列

如图所示。这个结构里r7和b9将产生交集,而且结构的定义域涉及两行两宫,而删除域涉及一行三列。将r7c8(5)视作内鱼鳍,当它不存在的时候,鱼将忽略重叠的影响,删数成立;否则删除掉的是直接对应的地方,所以只有c8的删除域区域是有效的。

4-3 内鱼鳍交叉五链列

如图所示,忽略c5和b2的重叠的影响,把r2c5(3)视作内鱼鳍处理。那么其余位置将产生定义域为r34c57b2、删除域则是r7c36b36的交叉五链列结构。但是鱼鳍的存在只能保证r2c389(3)的删数是有效的,所以r2c8 <> 3。

如图所示,这个示例也是比较神奇的例子。它有两个内鱼鳍,不过逻辑就不过多叙述了,在前文的解析里,它的逻辑已经说过非常多次了。

4-4 内鱼鳍交叉六链列

最后来看一个比较大的结构。

如图所示,如果我们尝试把r1c3(2)和r8c5(2)视为内鱼鳍,则这个结构的定义域为r157c5b18,删除域则是r2c1689b7,而删数就找内鱼鳍在删除域区域内的交集即可。

Part 5 混合鱼鳍的交叉鱼

5-1 混合鱼鳍的交叉五链列

如图所示,如果我们不算r9c1(9),也忽略掉r7和c7重叠处r7c7(9)的影响的话,那么一个交叉五链列就能被找到,删数也是成立的(定义域为r347c17,删除域则为r2c258b6)。而鱼鳍的存在,导致删数只能在删除域的鱼鳍对应的交集上。所以,最终能够删除的位置只有r9c8(9)。

如图所示,如果我们忽略r2和c7的交集的影响,并且忽视掉r5c8(2)的话,一个交叉五链列就成立了,定义域为r258c57,删除域则是r17c19b2。所以,总的删数只有r1c8(2),因为它是两个鱼鳍在删除域上的交集。

如图所示,这一则示例我并不打算讲解其中的逻辑,因为它的示例和之前的推导过程完全一样。不过我可以给出提示是,如果忽略掉涂紫色和橙色的9,定义域为r8c15b59,删除域则是r347c6b7。

5-2 混合鱼鳍的交叉六链列

最后两则示例也是比较难看到的,仅供参考。

如图所示,这个结构的定义域是r368c2b18,删除域则是r7c14589(如果忽略掉鱼鳍的影响的话)。

如图所示,这个结构的定义域是r37c367b2,删除域是r2468b19(如果忽略掉鱼鳍的影响的话)。

第 59 讲:交叉鱼的示例的评论 (共 条)

分享到微博请遵守国家法律