数对技巧 - 通过候选数的相互排除打开突破口

·约 1 分钟阅读

数对是指同一区域内的 2 个格子拥有相同的 2 个候选数时,可以从其他格子的候选数中排除这 2 个数字的技巧。本文讲解攻克 Hard 难度不可或缺的中级技巧。

数对的原理

数对(Naked Pair)是指同一行、列或宫格内的 2 个格子,恰好拥有完全相同的 2 个候选数字的状态。例如,某行中有 2 个格子的候选数都只有 {3, 7},那么这 2 个格子中必定分别填入 3 和 7(具体哪个填哪个尚未确定)。重要的是,这 2 个数字不可能出现在同一行的其他格子中。因此,可以从同行其他格子的候选数中排除 3 和 7。

系统化的发现方法

发现数对的前提是笔记(候选数)已被准确标注。步骤如下:(1) 找出所有候选数恰好为 2 个的格子。(2) 检查同一区域(行、列、宫格)内是否有拥有相同候选对的格子。(3) 找到配对后,从同一区域内其他格子的候选数中排除这 2 个数字。这种排除往往会使其他格子的候选数缩减为 1(产生显性单数),从而引发连锁反应推进解题。

向三数组的扩展

数对的概念可以扩展到 3 个格子。显性三数组(Naked Triple)是指同一区域内 3 个格子的候选数合计只涉及 3 种数字的子集。例如,3 个格子的候选数分别为 {2,5}、{2,8}、{5,8},它们构成 {2,5,8} 的显性三数组。这 3 个数字不可能出现在同一区域的其他格子中。

实战中的应用时机

应该寻找数对的时机是在显性单数和隐性单数都无法推进之后。所有格子的候选数都在 2 个以上,找不到任何可确定的格子时,数对的候选排除就成为突破口。特别是候选数为 2 的格子较多的区域,数对出现的概率更高。

显性数对与隐性数对的区别

初学者常把显性数对隐性数对混淆。显性数对是指两个格子「只」以那两个数字为候选,数对一目了然地暴露在外。隐性数对则是指某两个数字在一个单元内只能落在恰好两个格子中,但这两个格子还混有其他候选,因而数对被隐藏起来。删减的方向也相反。对显性数对,你要从同一单元的其他格子中删去那两个数字;对隐性数对,则要从那两个格子本身删去其他候选。二者互为表里,因此一旦发现其一,养成从另一视角审视盘面的习惯,能提升你的发现能力。

数对生效的实例与陷阱

用一个实例来看。某列九格中,有两格只含候选 {4,6},另一格含 {4,6,8}。根据显性数对,{4,6} 锁定在前两格,因此可从 {4,6,8} 的格子中删去 4 与 6,从而确定为 8。陷阱在于:误把候选不止 4 和 6 的两格当作数对。候选为 {4,6} 与 {4,6,9} 的两格并非显性数对;两格必须恰好持有相同的两个候选、且别无其他。此外,即便数对成立,若没有其他可删的候选,盘面也不会推进,因此要一并确认删减后是否会产生新的确定数。

不漏掉显性数对的笔记技巧

发现显性数对完全依赖笔记 (候选) 的准确。一旦漏写或忘删候选,就可能错过成立的数对,或误认不成立的数对。在实战中,每放下一个确定数,都务必更新其所影响之行、列、宫的候选笔记,这一点至关重要。把降到两个候选的格子轻轻做个标记,便于作为搜索数对的起点。用纸笔解题时,将每个数字写在格内固定位置 (如 1 在左上、9 在右下),能让持有相同候选对的格子在视觉上对齐,从而一眼就更容易发现显性数对。

与区块候选数的组合运用

显性数对若与区块候选数 (某数字在一个宫内的候选被限定在单一行或列上的状态) 结合,效果会更强。例如,若某宫中数字 5 的候选被限定在同一行的两格内,便可从该行其他宫中删去 5。由此产生的候选减少,可能在别处满足显性数对的成立条件。进入中盘以后,数独很少能靠单一技巧一举解出;盘面是通过这样的连锁推进的:显性数对的删减引出下一处区块候选,后者又产生下一个确定数。把每一项技巧准确地层层叠加的态度,最终会通向最短的解题路径。若急于依赖猜测,错误往往会连锁,逼得你从头再来。