grid_on

Sudoku Clean 素数独

技巧文档 / 排除法

排除法

排除法是数独里最常用、也最踏实的一种推理: 先选定一个数字,然后在某一行 / 某一列 / 某一宫里,找到它 唯一能落脚的位置 。

排除法

排除法是数独里最常用、也最踏实的一种推理:
先选定一个数字,然后在某一行 / 某一列 / 某一宫里,找到它唯一能落脚的位置

只要你能说清楚:

“其它位置放它都会冲突”

那这个位置就是答案。

下面我们用 r2c5 这样的写法来指代格子位置:
r 是行(row),c 是列(column)。


例子 1:列排除(找出第 5 列的 8)

先看图 1:请把注意力放在高亮区域,以及被标出的 8
你会发现:高亮的这些行里,已经出现过 8。

列排除示意 1

再看图 2:现在我们只关心 第 5 列
第 5 列里有几个空格,但它们所在的行里已经有 8 了,所以都不能再放 8:

  • r6c5 所在的第 6 行已经有 8 → r6c5 不能是 8
  • r7c5 所在的第 7 行已经有 8 → r7c5 不能是 8
  • r9c5 所在的第 9 行已经有 8 → r9c5 不能是 8

这样一来,第 5 列就只剩下 r2c5 还能放 8。
所以我们可以确定:r2c5 = 8

列排除示意 2


例子 2:宫排除(找出第 1 宫的 1)

先看图 3:注意高亮区域,以及被标出的 1
这表示:第 3 行已经出现过 1。

宫排除示意 1

再看图 4:现在我们把目光移到 第 1 宫(左上角的 3×3)
第 1 宫底部的三个空格(r3c1、r3c2、r3c3)都在第 3 行里,而第 3 行已经有 1 了,所以它们都不能是 1。

因此,第 1 宫里能放 1 的位置只剩下 r1c3
所以我们可以确定:r1c3 = 1

宫排除示意 2


小结

你可以把排除法记成一句话:

“先找一个数字,把冲突的位置都排掉,剩下的那个就是答案。”