中关村在线

游戏

全民数独进阶:鱼结构解析

鱼(链列)是一种数独解题技巧中的结构,与数组有些相似,但又存在明显区别。其基本逻辑是:当某个数字a恰好需要填入n行和n列中的n个位置时,若这些行与列构成的结构能够完全容纳这n个数字,则该结构称为鱼结构。一旦结构成立,结构以外的行或列中将不能再出现该数字a,否则会导致结构内部无法完成填数,使题目无解。其中,构成结构的行或列称为定义域,所有涉及的单元格合称为鱼身。结构成立后,在定义域之外的对应列或行中可以排除该数字a的可能性,这些区域称为删除域。本文主要介绍标准鱼结构的基本构造,不涉及更复杂的宫内删数情况。

鱼和数组一样具有规格,也存在互补的另一条鱼。当涉及两行两列时称为X翼(也叫二阶鱼或二链列),涉及三行三列的称为剑鱼,涉及四行四列的称为水母。更高阶的鱼由于较为罕见,因此不再进一步介绍。

-------

图1展示了一个X-Wing结构的实例。可以看到,在第6行中,数字1只能填入r6c6和r6c9两个位置;而在第8行中,数字1也只能填入r8c6和r8c9两处。这四个位置恰好位于第6列和第9列,形成一个矩形结构。由于每一行中数字1必须在这两个列中出现,因此在这两列的其他行中,对应的单元格不能再填入1,否则会导致某一行中无法填入数字1。从共轭对或区块的角度来看,无论是第6行还是第8行,数字1的位置都会在另一行中形成对应位置为真的情况,因此在第6列和第9列中,除了这四个位置以外,其他单元格不能再填入1。在这个结构中,第6行和第8行是定义域,r6c6、r6c9、r8c6、r8c9四个格子构成鱼身,而第6列和第9列则是删除域,删除格为删除域中不属于鱼身的其他单元格。

------

图2展示了剑鱼结构的一个实例,定义域为r689,鱼身由r69c86、r89c8及r689c9这几个单元格组成,删除域为c689。可以发现,在r689中,数字1可填入的位置恰好仅分布在三行三列之中。

-------

图3展示了水母结构的一个实例,其定义域为c3679列,鱼身位于r3c379、r4c67、r6c39、r9c36这几个单元格,删除域为r3469行。可以发现,在c3679列中,数字1可填入的位置恰好仅分布在四行四列之中。

-------

图4是对图3中水母结构的补充,当我们将原来的行删域转换为列删域后,在r158中可以发现一个剑鱼结构(用绿色标记)。这个剑鱼与原水母互为补充。通过去除删数格中与数字1相关提示格重叠的单元格后,可以清楚地看到两种结构在相同位置进行了删除操作。

----

由于篇幅限制,关于鱼的其他变形形式,如鳍鱼、残缺鱼、孪生鱼等内容,建议自行查阅相关教材深入学习。至此,进阶篇的内容已结束。对于更高难度的题目中涉及的技巧,我只会在高难度篇中介绍xr、ar、ul以及环等结构,其他复杂技巧在此无法详尽说明,还需大家自行投入时间和精力进行学习。

展开全文
人赞过该文
内容纠错

相关电商优惠

任天堂Switch 2

任天堂Switch 2

4029
49人评分
100%好评
小霸王Q900

小霸王Q900

708
54人评分
99%好评

评论

更多评论
还没有人评论~ 快来抢沙发吧~

读过此文的还读过

点击加载更多

内容相关产品

说点什么吧~ 0

发评论,赚金豆

收藏 0 分享
首页查报价问答论坛下载手机笔记本游戏硬件数码影音家用电器办公打印 更多

更多频道

频道导航
辅助工具