数独为什么无解
数独没有重复数字,也可能无解。重复检查只核对已填数字,完整答案还必须能填满所有空格。如果某格无数可填,或某行、列、宫缺少的数字无处可填,就能证明盘面无解。
推理实例
坐标从左上角开始:r 表示行,c 表示列。小数字是候选数,框选格见图注。
检查这个例题查看题目文本
每行从左到右,逐行从上到下读取。0 表示空格。
013056789056789123789023456234567891567891234891234567345678912678912345902345678无处可填的数字 2
此盘面基于隐性唯一数示例,在 r1c2 错填了 1。该行、列和宫原本都没有其他 1,因此没有直接重复,但仍无法完成整盘。
r9c2 也能发现矛盾:第 9 行需要在那里填 1,但第 2 列已有新增的 r1c2 = 1。同一个根本错误可能在多处暴露,发现矛盾的位置不一定就是填错的位置。
步骤 1. 第 1 行为:空、1、3、空、5、6、7、8、9,缺少 2 和 4。
步骤 2. r1c1 不能填 2,因为第 1 列的 r4c1 已有 2。
步骤 3. r1c4 不能填 2,因为第 4 列的 r6c4 已有 2。
步骤 4. 这就是第 1 行仅剩的空格,必需的 2 无处可填,所以无解。
读懂诊断结果
根据诊断结果,核对相应的输入。
| 题目诊断 | 能证明什么 | 建议的下一步 |
|---|---|---|
| 输入格式错误 | 文本未表示 81 个有效格子 | 检查长度、顺序和空格符号 |
| 冲突的数字 | 区域内出现重复数字 | 核对高亮数字与原题 |
| 无解 | 无冲突,但无法补全 | 核对抄录的已知数,撤销未经证明的落子 |
核对已知数和最近的填数
有原题时,先只输入已知数检查。若原题唯一解、当前盘面却无解,则至少一个新增数字有误。撤销自己的落子,回到每一步都能说明理由的位置。
仅输入抄录的已知数就无解时,应逐行核对,特别注意漏掉空格或数字错位。不要悄悄改动已知数来让求解器给出答案,那样解决的是另一道题。
本例已知是新增的 r1c2 = 1 导致无解。擦除后恢复原盘面,第 1 行会强制 r1c2 = 2。历史不明的盘面中,仅凭求解状态无法定位唯一错误格。
卡住不代表无解
没有找到显性或隐性的唯一数,只能说明当前检查没有用这些技巧找到下一步,不能证明无解。可能需要更复杂的推理,也可能题目存在多解。
只有穷尽全部合法分支的完整搜索,才能证明无解。不完整的检查做不到这一点;因超时或技术限制而中止时,结论仍是未知,不能报告为“无解”。
检验理解
第 1 行两个空格都能填 4。先填一个 4,能找出 2 的位置吗?
查看推理
不能。只要列中的已有数字固定不变,这两个空格都不能填 2。任一格先填 4,只会把同样无法满足的条件留给另一格,矛盾已经成立。
关于本例
这个教学盘面保留了较多已知数,便于观察推理,不作难度评级。诊断示例中说明的冲突或多解均为特意设置。
规则与术语
- Nikoli:数独规则
示例使用的标准行、列及 3×3 宫规则。 本页的棋盘与推理说明为另行制作。