数独求解与出题
报纸上卡住的那道题,填进去按一下就出答案;也可以让它现出一道新题来做。求解用的是「唯一候选数优先 + 回溯」,能顺带告诉你这道题是不是只有一个解——一道合格的数独题必须唯一解。
点「出一道新题」开始,或者把手上的题目填进格子里再点「求解」。
解题技巧
- 唯一候选数(Naked Single)
- 某个空格,把同行、同列、同宫已出现的数字都排除后只剩下一个可能——那它就是答案。这是最基础也最常用的一步,入门题从头到尾只用这一招就能解完。本页的「显示候选数」可以把每格还剩哪些数字标出来。
- 隐性唯一数(Hidden Single)
- 反过来看:在某一行(或列、宫)里,数字 7 只有一个格子能放——即使那个格子本身还有好几个候选数,7 也只能填在那里。很多人卡住是因为只盯着「这个格子能填什么」,而忘了问「这个数字能填在哪」。
- 区块排除(Pointing / Claiming)
- 如果某个宫内,数字 4 的所有候选位置都落在同一行上,那么这一行在该宫之外的格子就都不能是 4。反之,如果某一行里数字 4 的候选位置都落在同一个宫内,那这个宫的其他格子也不能是 4。这一招能在中等难度题里打开僵局。
- 数对与三链数
- 同一行里有两个格子的候选数都恰好是 {3,8},那么 3 和 8 必定分别占据这两格,该行其他格子就可以把 3 和 8 都划掉。推广到三个格子就是三链数。再往上还有 X-Wing、剑鱼等高级技巧,专家级题目才用得上。
- 为什么数独必须唯一解
- 有多个解的题目不能算合格的数独——解题过程会退化成猜测,失去了逻辑推理的乐趣。研究表明,能保证唯一解的最少提示数是 17 个,16 个及以下必定有多解。本页出的题都经过唯一性校验,粘贴进来的题目也会告诉你有几个解。
- 这页是怎么解的
- 先反复扫描唯一候选数和隐性唯一数把能确定的格子填满;卡住时选一个候选数最少的格子做分支,按深度优先回溯。这个策略对绝大多数题目毫秒级出解,对刻意构造的「最难数独」也能在一秒内跑完。判断唯一性的办法是继续搜第二个解,找到就说明不唯一。
- 相关工具
- 24点计算、抽奖与随机点名、格子纸生成、数学计算器。