基本鱼形
基本鱼形
什么是数独中的鱼形图案?
鱼形图案是一类针对单个数字的技巧,利用某个数字的候选数在行与列之间的排列方式。每种鱼形图案的原理都相同:你找出一组行(或列),其中某个数字的候选数被限制在有限数量的列(或行)中,然后排除其他位置的候选数。每种鱼形图案一次只针对一个数字。你观察单个数字在整个棋盘上的分布。四种基本鱼形共用同一套底层算法,只是规模不同。
核心原理:行与列上的鸽巢逻辑
对于单个数字,如果你能找到N行,其中该数字的候选数被限制在不超过N列中,那么这些列只能从所选的行中获得该数字。如果并集少于N列,这些行本身就已包含矛盾,因此有效的鱼形实际上恰好使用N个覆盖列。这N行中的每一行都必须恰好放置该数字一次。每行中的该数字必须落入某个覆盖列。由于有N行和N个可用的覆盖列,覆盖列已被基础行完全占用。任何位于基础行之外但在覆盖列之内的该数字候选数都可以被删除。同样的逻辑反过来也成立,即以列为基准、以行为覆盖。扫描时应两个方向都检查。
X翼:2x2鱼形图案
X翼使用N=2:两行映射到两列。当恰好有两行都在相同的两列中包含某个数字作为候选数时,就形成了该数字的X翼。这四个单元格构成一个矩形。可以从这两列的所有其他单元格中排除该数字。同样的图案也适用于以列为基础的情况。X翼被归类为难度第4级(中等)。
剑鱼:3x3鱼形图案
剑鱼将鱼形逻辑扩展到N=3:三行映射到三列。并非每一行都需要在全部三列中都有候选数。要求只是所有候选列的并集恰好为三列。剑鱼被评为第4级(中等),与X翼相同。底层逻辑完全相同。
水母:4x4鱼形图案
水母使用N=4:四行映射到四列。单独的行可能只在四列中的两列、三列或四列中有候选数。水母被归类为第7级(非常困难)。它出现得并不频繁,因为四行恰好对齐到四列这种特定情形并不常见。从9行中选4行有126种方式,因此系统性的手工搜索需要耐心。
斯奎姆巴格:5x5鱼形结构
斯奎姆巴格使用N=5:五行映射到五列。评级为第9级(大师),在实际中极为罕见。一个斯奎姆巴格在未被5鱼使用的行和列中有一个互补的水母。由于互补的水母更小,当两种解释都可用时,大多数解题者和许多解题引擎会先报告水母。这使得斯奎姆巴格作为理论上的延伸比作为实际手工解题目标更有用。这种互补原理可以进一步延伸:6鱼互补一个剑鱼,7鱼互补一个X翼,8鱼互补一个隐藏单数。N=5是命名基础鱼形的实际最大值。
如何在谜题中寻找鱼形结构
第1步:选择一个仍有多个未解位置的数字。第2步:按行映射候选位置。对于你选择的数字,列出每一行中它出现在哪些列。只有2或3个位置的行最有希望。第3步:寻找列重叠。检查N行的任意组合是否有候选数恰好跨越N列。第4步:验证覆盖列中是否存在可排除项。第5步:对基于列的鱼形重复上述步骤。专注于那些有多行恰好只有两个候选位置的数字。只有两个候选数的行是鱼形结构的构建基础。
鱼形结构的难度递进
X翼:N=2,第4级,中等剑鱼:N=3,第4级,中等水母:N=4,第7级,非常困难斯奎姆巴格:N=5,第9级,大师从剑鱼(第4级)到水母(第7级)的跳跃反映了人类解题者难度上的显著增加。
与高级鱼形变体的关系
基础鱼形是“无鳍”或“标准”鱼形。高级变体包括:带鳍鱼形:在预期列之外存在一个额外候选数(“鳍”)。所有尺寸的带鳍变体都存在于第7-9级。刺身鱼形:一种带鳍鱼形,若移除鳍则会留下一个隐藏单数而不是鱼形。第7-9级。弗兰肯鱼形:区块与行和列一起作为定义宫。第10-11级。变异鱼形:任何宫的组合都可以作为基础集和覆盖集。最一般的形式。核心原理——N个宫将某个数字限制在N个交叉宫中——在所有变体中保持不变。
总结
基本鱼形家族——X翼、剑鱼、水母和斯奎姆巴格——建立在同一个原理之上:N行将某个数字限制在N列中,意味着可以在这些列中进行排除。这四种技巧从容易上手的X翼到罕见的斯奎姆巴格,构成了带鳍鱼、刺身鱼和弗兰肯鱼的基础。所有鱼形模式都是同一技巧在不同规模下的体现。如果你明白X翼为何成立,你就明白斯奎姆巴格为何成立。