隐性三数组
Hidden Triple
概要:隐性三数组(Hidden Triple)是隐性数对的扩展。在某行、列或宫中,若三个数字只出现在同样的三个格子中(这三个格子可能还有其他候选数),则可以将这三个格子中不属于这三个数字的候选数全部消除,将其化为显性三数组。
什么是隐性三数组?
隐性三数组(Hidden Triple)是隐性数对的扩展,也是显性三数组的”镜像”技法。
核心逻辑:在一个行、列或宫中,如果三个数字(设为 A、B、C)只出现在该单元的同三个格子中(即这三个数字在其他格子中完全不存在),那么这三个格子必然承担着放置 A、B、C 的所有责任——这三个格子中除 A、B、C 之外的所有其他候选数都可以被安全删除。
“隐性”的含义:这三个格子可能还有很多其他候选数,三数组被”隐藏”在复杂的候选数中,需要从数字的视角而非格子的视角来发现。
与显性三数组的区别:
| 维度 | 显性三数组 | 隐性三数组 |
|---|---|---|
| 发现视角 | 从格子出发:三格的候选数并集只有三个数字 | 从数字出发:三个数字只出现在三个格子 |
| 消除结果 | 消除单元内其他格子的这三个数字 | 消除这三个格子内其他数字 |
| 发现难度 | 相对直观 | 通常更难发现 |
| 效果 | 相同(逻辑等价) | 相同(逻辑等价) |
解题步骤
-
选定一个单元:选择一行、一列或一个宫
-
统计每个候选数的出现位置:对于该单元中尚未填入的每个数字,记录它在哪些空格中出现
-
寻找三个数字:找三个数字 A、B、C,使得它们加在一起只出现在恰好三个格子中(每个数字可以出现在 1、2 或 3 个格子,但这些格子的总并集只有三个)
-
验证:确认 A、B、C 在该单元中除这三个格子外没有其他出现位置
-
消除:在这三个格子中,删除所有不是 A、B、C 的候选数
-
结果等价:消除后,这三个格子变成标准的显性三数组,可继续用显性三数组的逻辑推理
示例详解
步骤 1:棋盘总览
步骤 2:让我们观察第9行。这一行有6个空格,候选数看起来很复杂。但让我们关注数字2、5、6的分布。
步骤 3:先看看所有空格的候选数。注意数字2、5、6分别出现在哪些格子中?
步骤 4:数字2只在第1、2列出现;数字5只在第1、2、3列出现;数字6只在第1、2、3列出现。这三个数字被锁定在同样的三个...
步骤 5:这三个格子必须放置2、5、6,所以其中的其他候选数可以消除:第1列的3,第3列的1和3。
步骤 6:隐性三数组和显性三数组是互补关系。如果你在一个单元的空格中找到了一个显性三数组,剩下的空格自然形成一个隐性三数组—...
步骤 7:识别隐性三数组的关键:找到3个候选数,它们在本单元中只出现在同样的3个(或更少)格子里。消除的是这些格子中的"多余...
以第 6 列为例,该列的空格候选数分布如下:
| 格子 | 候选数 |
|---|---|
| R1C6 | {1, 4, 6, 8} |
| R2C6 | {4, 6, 9} |
| R3C6 | {1, 4, 8} |
| R5C6 | {2, 3, 9} |
| R6C6 | {2, 3, 6, 9} |
| R9C6 | {2, 3} |
从数字视角统计:
| 数字 | 在第 6 列中出现的格子 |
|---|---|
| 1 | R1C6, R3C6 |
| 2 | R5C6, R6C6, R9C6 |
| 3 | R5C6, R6C6, R9C6 |
| 4 | R1C6, R2C6, R3C6 |
| 6 | R1C6, R2C6, R6C6 |
| 8 | R1C6, R3C6 |
| 9 | R2C6, R5C6, R6C6 |
寻找三数组:
检查数字 2、3、9:
- 2 出现在:R5C6, R6C6, R9C6
- 3 出现在:R5C6, R6C6, R9C6
- 9 出现在:R2C6, R5C6, R6C6
并集格子:{R2C6, R5C6, R6C6, R9C6} — 四个格子,不符合!
检查数字 1、4、8:
- 1 出现在:R1C6, R3C6
- 4 出现在:R1C6, R2C6, R3C6
- 8 出现在:R1C6, R3C6
并集格子:{R1C6, R2C6, R3C6} — 恰好三个格子 ✓
数字 1、4、8 只出现在 R1C6、R2C6、R3C6 三个格子中,构成隐性三数组!
消除操作:
- R1C6:候选数 {1, 4, 6, 8} → 移除 6(不是 1、4、8)→ {1, 4, 8}
- R2C6:候选数 {4, 6, 9} → 移除 6、9 → {4} → R2C6 = 4(唯一空位!)
- R3C6:候选数 {1, 4, 8} → 全是 1、4、8,无需消除
消除后,R2C6 直接确定为 4,进一步:
- R1C6 候选数 {1, 4, 8} 中移除 4 → {1, 8}(显性数对 R1C6/R3C6)
一次隐性三数组的发现连锁触发多个结果。
实用技巧
-
从出现次数少的数字入手:如果某个数字在一个单元中只出现 1-2 次,它更可能是三数组的成员
-
建立”出现格子”的映射:对每个单元,快速建立”数字 → 位置列表”的映射,寻找三个数字的格子并集只有三个的组合
-
三数组的格子必须覆盖三个数字的所有位置:如果数字 A 在该单元还有第四个出现位置,这三个数字就不构成隐性三数组
-
消除的实际价值:隐性三数组的价值在于简化那三个格子。如果消除后某格变成唯一候选数,立即可以确定答案
-
先找显性,后找隐性:通常先用显性技法(数对、三数组)简化盘面;如果显性方法用尽,再切换到隐性视角
与其他技法的关系
- 前置技法:隐性数对——隐性三数组是隐性数对的逻辑延伸,从 2 个数字扩展到 3 个
- 镜像技法:显性三数组——两者在逻辑上完全等价,只是发现视角不同(格子视角 vs 数字视角)
- 延伸技法:隐性四数组——同样的逻辑再延伸到四个数字和四个格子
隐性系列技法(隐性数对 → 隐性三数组 → 隐性四数组)与显性系列(显性数对 → 显性三数组 → 显性四数组)构成候选数消除的完整框架。
常见问题
Q:隐性三数组和显性三数组最终效果一样吗?
A:从数学角度是等价的——发现其中一个,另一个必然也存在于同一单元中。但在实际解题中,两者的发现难度不同,有时显性三数组很明显,有时隐性三数组更容易从数字频次统计中发现。两种视角相互补充,都值得掌握。
Q:如果三个数字的出现格子超过三个,是否完全没有利用价值?
A:是的,隐性三数组严格要求三个数字的出现位置的并集恰好是三个格子。如果超过三个,就不构成隐性三数组。但这种情况可能是隐性四数组或其他结构,可以继续分析。
在爱九宫数独中练习
打开爱九宫数独 App → 学习 → 高级技法 → 隐性三数组,进行针对性训练。建议按顺序学习:显性三数组 → 隐性三数组 → 隐性四数组,逐步建立从不同视角分析候选数约束关系的能力。