数独谜题是如何制作的

一道数独如何生成:先构建一个完整解出的网格,再移除提示,同时检查解仍保持唯一。

你玩的每道数独都是由生成器构建的,理解这一过程能揭开谜题的神秘面纱。它分两个阶段进行:先创建一个完全填满、有效的网格,再从中剜去提示,直到得到一道仍可唯一求解、但不会比所需更简单的谜题。

我们的谜题由共享引擎从一个种子生成,这正是同一种子总产生相同盘面的原因 — 也是本维基中的练习盘是真实生成的谜题、而非手工输入示例的原因。

第 1 步:构建一个完整解

生成器用一组完整、有效的数字排布填满一个空网格 — 每行、每列和每宫都正确。这通过随机回溯填充完成,因此每次运行都产生不同的完成网格。

第 2 步:移除提示,检查唯一性

随后逐个移除提示。每次移除后,生成器重新求解网格,以确认它仍恰好只有一个解;如果某次移除会造成第二个解,该提示就被放回。难度目标控制移除多少提示,以及需要哪些解题技巧。

  • 填满一个完整、有效的网格(随机回溯)。
  • 逐个移除提示,每次都重新检查唯一性。
  • 当难度目标达成且解仍唯一时停止。

常见问题

为什么同一个种子总产生相同的谜题?
引擎是确定性的:种子固定了随机选择,因此用该种子的每次生成都产生相同的网格。正是这一点让本维基能嵌入可复现的练习谜题。
生成器怎么知道一道谜题很难?
它瞄准一个提示数量,并检查解出结果需要哪些技巧。更少的提示和更难的所需推理都会把一道谜题推上难度阶梯。

相关阅读

延伸阅读

在线练习

在带提示、笔记和四种难度的免费谜题上加以实践。

玩数独

我们使用 Google Analytics 了解访客的使用情况。在你接受之前,不会设置任何跟踪 Cookie。 查看我们的分析 Cookie 政策.