← 返回小游戏
数独研习室中文本地教程
反证

受控反证

受控反证暂时把一个候选当作答案,再检查它会不会必然造成矛盾。短的确定传播适合逐步讲解;必要时的完整搜索属于另一类证据,界面会明确区分。

先记住一句话

假设写纸边,矛盾找清楚;超时不算错。

怎样找到这个突破口

  1. 先确认原盘面和候选没有已知错误,再选一个候选作临时假设。推演保留在副本或草稿上,暂时不改正式答案。
  2. 先做确定传播:排除同行、同列、同宫冲突数字,再连续填写唯一候选或唯一位置,给每一步写理由。
  3. 若出现重复数字、空格没有任何候选,或某单元某数字完全没有位置,检查整条因果链;确认后删除最初假设的候选。
  4. 若短传播未见矛盾,可以停止;允许搜索反证时,程序也可穷尽该假设下的合法分支。只有搜索完整结束且解数为零,才能排除这个候选。
  5. 阅读结果标签:确定传播能逐步复核;搜索反证说明全部合法分支已检查。达到时间、节点或深度上限时,没有获得删数证明。

为什么这样做成立

在一个有效的原盘面上,若某候选为真就必然违反数独规则,它便不可能属于任何合法解。这个反证不依赖题目是否只有一个解。

确定传播是沿强制步骤得到具体矛盾;搜索反证则对假设下的所有合法选择进行完整检查。两者都可以提供严格排除,但证据形式不同,教学时不能把搜索结果叫作某种短链、两数队或鱼形。

对照例题:边看题,边学方法

先自己观察,再按步骤对照。解题方法的题例保留完整候选,用于练习当前这一步;操作指南的题例用于跟做本课功能。候选结构练习可能有多个完整解。

对照例题 1

受控反证 · 对照示范 1

去盘面练习 ↗

先找相关区域,再说清楚结构为什么成立。

受控反证 · 对照示范 1 · 先看盘面列号在上方,行号在左侧。显示这张题的完整候选笔记。黄色为观察格,红色划线可删除,绿色大数字为确定填数。15121412345678912345678912345678912345678912345678912345678913234123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789112233445566778899

先自己观察。这是完整的数独候选盘,可以直接和文字步骤对照。

自己动手:5 道巩固练习

先不看答案,打开练习盘完成本课目标,再回来核对理由。练习通过数字替换、旋转或镜像形成同结构变式,帮助你换个位置也能认出来。

本课已完成 0 / 5 题

巩固练习 1 / 5

受控反证 · 巩固练习 1

打开这题,自己做 ↗

使用“受控反证”找到一步可以确定填数或删除候选的推理;先指出观察格,再说明理由。

同结构变式 · 旋转 180° · 数字重新编号 · 来源:受控反证:假设怎样走到矛盾

受控反证 · 巩固练习 1 · 先看盘面列号在上方,行号在左侧。显示这张题的完整候选笔记。黄色为观察格,红色划线可删除,绿色大数字为确定填数。12345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678913656123456789123456789123456789123456789123456789123456789153559112233445566778899
需要时,看一点提示

先回想本课口诀:“假设写纸边,矛盾找清楚;超时不算错。” 图中已保留本题完整候选,先找结构,暂时不要展开答案。

做完后,对照答案与理由

暂时假设第 9 行第 9 列填 5。第 8 行第 9 列填 6 → 第 9 行第 7 列填 1 → 第 8 行第 8 列填 3。最后第 9 行第 8 列所有候选数都被排除了,出现矛盾。因此起点不能填 5,可以删去这个候选。这里只使用唯一候选和唯一位置作临时推导。

受控反证 · 巩固练习 1 · 查看结论列号在上方,行号在左侧。显示这张题的完整候选笔记。黄色为观察格,红色划线可删除,绿色大数字为确定填数。12345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678912345678913656123456789123456789123456789123456789123456789123456789153559112233445566778899
  • 第9行第9列删除候选 5
  • 展开这张例题的完整推理记录
    1. r9c9 的 5 为真
    2. r8c9 的 6 为真
    3. r9c7 的 1 为真
    4. r8c8 的 3 为真

最容易弄错的地方

  • 临时推演中自己猜了第二个数字,矛盾就未必能直接归到第一个假设;必须完整说明新增分支。
  • 手动误删候选会制造假矛盾,反证前要先确认原盘面与候选的可靠性。
  • “暂时没找到解”和“已完整检查,确认无解”不是同一件事。超时、限深、节点上限都不能作为删数依据。
  • 假设没有导致矛盾,并不自动说明它正确;只能说当前检验没有排除它。
本地支持的具体范围

本地先尝试唯一候选、唯一位置的短传播反证;允许搜索证据时再做有预算的精确搜索。结果明确标记 propagation 或 bounded-search,只有完整的零解检查才返回搜索删数。

和孩子一起说一说

先只用唯一候选和唯一位置,让孩子在纸边写“假如这里填这个数”。找到冲突后从末尾往回读,确认每一步都没有偷偷猜第二次。

学会了吗?做个小检查

程序在某个候选假设下搜索超时,尚未发现完整解。这时能删除该候选吗?