Python中最短的数独求解器

时间:2014-06-16 17:42:50

标签: python sudoku brute-force solver

我开始在Python中编写自己的Sudoku解算器,但它太慢/不优雅了 所以我寻找一种优雅的方法来解决这个问题。

我偶然发现了这个神秘的数独求解器以及社区给出的非常好的解释: Shortest Sudoku Solver in Python - How does it work?
我已经理解了解释和延伸的版本,但我有一个问题:

当我运行Bill Barksdale解释的Python版本低于3.0的版本时,解决数独游戏需要很长时间,但是成功并打印出正确的解决方案。
当我使用Python 3.0或3.4运行程序时,程序在不到一秒的时间内完成,但打印出错误的解决方案。

我试图用Python找到问题> 3.0但我不知道。
有人可以指出为什么这个程序在Python 3.0下面运行但不在上面吗?

谢谢

1 个答案:

答案 0 :(得分:0)

我怀疑问题很可能是Python 2 2/3 = 0中Python 3除法运算符的不同之处,但在Python 3 2/3 = 0.66666中会很好地混淆逻辑。您可以尝试添加from __future__ import division并在Python 2下运行,或者将所有/替换为//并在Python 3下运行。

一般来说,混淆代码也是不可维护的代码,因此我会避免将其描述为优雅代码。