【问题标题】:Using a giant hashtable to solve a sudoku in polynomial time使用巨型哈希表在多项式时间内解决数独问题
【发布时间】:2018-09-12 05:04:32
【问题描述】:

假设您要创建一个哈希表,将所有可能的有效 9x9 数独(尚未填写)映射到其解决方案。 (这将是一项不可行的任务)

然后您将创建一个简单的程序,该程序将有效的 9x9 数独(同样,尚未填写)作为输入,并在上述哈希表中返回映射到它的解决方案。

这不应该被认为是在多项式时间内工作的数独求解器吗?

这个理论解决方案是否有资格证明数独是 P 类问题?

【问题讨论】:

  • 恭喜,您已经解决了“检索算法索引解决方案”的问题。查找彩虹表,这是解密的绝佳解决方案。谬误在于这部分——生成所有这些可能的网格和解决方案的原始程序的复杂性是什么?

标签: hashtable complexity-theory sudoku np


【解决方案1】:

我认为你误解了这个问题。来自Wikipedia

已知在 n×n 块的 n^2×n^2 网格上解决数独难题的一般问题是 NP 完全的。

虽然游戏可能最常见的是 9x9 变体,但普遍陈述的问题表征了网格大小与找到解决方案的复杂性之间的关系 - 而不是任何单个网格。如果你的假设是真的,它不会从根本上改变问题的分类。

另外,请考虑如何从此类哈希表中检索候选解决方案。如果您使用所有初始值的序列及其位置作为键,那么您需要保留所有可能的初始值集(81 选择 30,1.4e22) - 对于每个唯一解决方案(6.7e21)。 (这仅适用于以显示三十个值开头的解决方案......)

【讨论】:

    猜你喜欢
    • 2021-08-30
    • 2021-08-13
    • 2019-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 2020-01-22
    相关资源
    最近更新 更多