我开始用Python编写自己的数独解算器,但速度太慢/太不雅观,
我寻找了一个优雅的方法来解决这个问题。在
我偶然发现了这个神秘的数独解算器和社区给出的非常好的解释:
Shortest Sudoku Solver in Python - How does it work?
我已经理解了解释和延伸的版本,但我有一个问题:
当我运行Bill Barksdale解释过的版本,Python版本低于3.0时,解决一个数独需要很长时间,但成功并打印出正确的解决方案。
当我用python3.0或3.4运行这个程序时,程序在不到一秒钟的时间内就完成了,但是打印出了一个错误的解决方案。在
我试图找出Python>;3.0的问题,但我不知道。
有人能指出为什么这个程序运行在python3.0以下而不是上面?在
谢谢
我怀疑问题很可能是python3 divide运算符在python2
2/3 = 0
中的不同,而在python32/3 = 0.66666
中,这会很好地扰乱逻辑。您可以尝试添加from __future__ import division
并在Python2下运行,或者将所有的/
替换为//
,并在Python3下运行。在一般来说,模糊代码也是不可维护的代码,所以我会避免将其描述为优雅的代码。在
相关问题 更多 >
编程相关推荐