我开始在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下面运行但不在上面吗?
谢谢
答案 0 :(得分:0)
我怀疑问题很可能是Python 2 2/3 = 0
中Python 3除法运算符的不同之处,但在Python 3 2/3 = 0.66666
中会很好地混淆逻辑。您可以尝试添加from __future__ import division
并在Python 2下运行,或者将所有/
替换为//
并在Python 3下运行。
一般来说,混淆代码也是不可维护的代码,因此我会避免将其描述为优雅代码。