基础鱼
什么是 数独 中的鱼形模式?
鱼形模式是一类单数字技巧,利用数字候选数在行和列之间的对齐方式。每种鱼形模式的工作原理相同:您需要找到一组行(或列),其中某个特定数字的候选数被限制在有限数量的列(或行)内,然后在其他地方消除候选数。 每种鱼形模式一次只关注一个数字。您需要查看单个数字在整个网格中的分布情况。所有四种基本鱼形模式都遵循单一的底层算法。它们之间的区别仅在于大小。
核心原则:行与列上的鸽巢逻辑
对于单个数字,如果你能找到N行,该数字的候选数出现在最多N列中,那么这N列只能在这些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级(大师级),在实际中极为罕见。 每个斯奎姆巴格 都意味着在互补行和列中存在一个水母。由于水母 更小且更简单,求解器总会先找到它,从而使斯奎姆巴格 失去意义。 这种互补性原理可进一步延伸: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翼为何有效,你就理解了斯奎姆巴格为何有效。