宫内指向数对是第一个让两个区域互相“对话”的技巧,它能排除候选数,这是任何单区域扫描都碰不到的。道理很简单:如果一个数字被困在宫内的一条线上,它就不能出现在这条线的其余部分。
取一个宫,以及它里面仍然缺少的一个数字。看这个宫中这个数字仍是候选数的每个格。如果它们都在同一行,那么无论哪个格最后填入这个数字,它都落在这一行。这个宫必须在某处含有这个数字,所以这一行分得的这个数字在宫内就用掉了,该数字可以从这一行在另外两个宫中的格里删除。
两个这样的格构成指向数对,三个构成指向三数组,逻辑完全相同。列的情况也是一样。
| 指向数对 | 宫行列排除法 | |
|---|---|---|
| 数字被限制在 | 宫内的一条线 | 线内的一个宫 |
| 你要从哪里删除 | 这一行或这一列的其余部分 | 这个宫的其余部分 |
| 方向 | 宫沿着这条线向外指 | 这条线反过来缩小宫 |
| 排除的格 | 最多 6 个,在另外两个宫里 | 最多 6 个,在同一个宫里 |
两者都叫锁定候选数,值得成对学习,因为你是朝相反的方向去扫描它们。
看第 6 宫中的 1。
第 6 宫需要一个 1,而剩下能放它的格只有 D7 和 D8,都在行 D。所以行 D 的 1 在第 6 宫之内,第 5 宫中的 D4 和 D5 失去 1。
这两个格不必相邻,里面也可以有很多其他候选数。重要的只是宫内没有第三个格能放 1。
指向数对在中等经典数独前后开始起作用,从困难往上则必不可少,无论经典还是杀手数独。它也是大多数高级图形背后的思维习惯:找出一个数字不能去哪里,盘面会告诉你其余的。