数独可能有多个解吗?看一个具体例子
是的,至少两份不同的完整棋盘满足行、列、宫规则并保留所有已知数时,就是多解。一个合法答案只能证明有解;唯一性检查必须继续寻找第二个答案。
推理实例
从左上角读取坐标:r 代表行,c 代表列。小数字表示候选数,描边标出图注讨论的格子。
在求解器中打开本例查看完整的 81 格输入
每行从左到右,逐行从上到下读取。0 表示空格。
003456789456789003789003456034567890567890034890034567345678900678900345900345678保留所有已知数,只修改空格
将下方完整棋盘作为答案 A,移除其中所有 1 和 2 得到例题。两种数字各九个,共留下 18 个空格和 63 个已知数。
把答案 A 中的所有 1 变为 2、所有 2 变为 1,即得到答案 B。3–9 全部不变,因此两个答案都保留了题目中的每个已知数。
为什么第二份答案合法
答案 A 的每行、每列、每宫都恰有一个 1 和一个 2。全盘交换二者后,各区域仍各有一个;其余七种数字不动。因此答案 B 是完整合法的数独,不只是暂时没有冲突的局部盘面。
两份答案的 r1c1 不同,因此确为不同答案。这两个实例已足以证明非唯一,无需断言恰好两个解或统计全部答案。
63 个已知数仍不能保证唯一解
这个特意构造的示例,比常见报刊题目有更多已知数,却仍然多解。数量只说明固定了多少格,不说明这些条件能否区分所有合法答案。
给这两份答案标上不同难度也无法解决多解问题。难度是按既定方法求解所需的工作量,唯一性是合法完整答案的数量。正常评级前应先确认唯一解。
求解器可以得出和不能得出的结论
找到一份完整棋盘只能证明“有解”。要报告“唯一解”,还必须排除其他所有答案。Sudoku Slate 会搜索到所有可能性耗尽,或者找到第二个答案。
多解时,不要把第一个返回的答案当成原题预期答案。原题本应唯一时检查漏抄的已知数;自行设计的题目则需调整条件后重新检查唯一性。
从一个合法答案中增加一个已知数,会排除与它不符的答案,但可能仍剩多个。必须重新检查唯一性,不能仅因排除了碰巧查看的两个示例就认定唯一解。
检验理解
增加 r1c1 = 1 会排除答案 B 吗?仅此就能证明修改后的题目唯一解吗?
查看推理
这会排除答案 B,因为 B 在 r1c1 填 2。但排除一个已知替代答案,不等于不存在其他答案。修改后的题目仍需要完整的唯一性检查。
关于本例
本例从完整棋盘构造而来,为便于检查特定推理保留了较多已知数。诊断示例在明确说明时故意设置冲突或多解;它们是教学盘面,不是已评级的游戏题目。
规则与术语
- Nikoli:数独规则
示例使用的标准行、列及 3×3 宫规则。 本页的棋盘与推理说明为另行制作。