Skip to content

iDvel/sudoku

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 

sudoku

使用:

$ python suduku.py
请逐行输入数独内容,空白格用空格键代替,输入「A」初始化默认初级数独,输入「S」初始化默认最难数独,直接回车初始化默认高级数独
请输入第 1 行的内容:  17   29
请输入第 2 行的内容:78 2     
请输入第 3 行的内容:  9  18  
请输入第 4 行的内容: 1    6 2
请输入第 5 行的内容:   682   
请输入第 6 行的内容:9 6    7 
请输入第 7 行的内容:  34  5  
请输入第 8 行的内容:     3 96
请输入第 9 行的内容:17   62  

。。。

*** 循环结束 共计填入过 87 次 ***                                       
+-------+-------+-------+
| · 6 · | 3 · · | · · 1 |
| 9 · · | · · 6 | 7 · · |
| 4 · 3 | · · · | · 2 · |
+-------+-------+-------+
| 5 · 9 | 8 · · | · · · |
| · · 4 | 5 · 7 | 3 · · |
| · · · | · · 3 | 6 · 8 |
+-------+-------+-------+
| · 4 · | · · · | 8 · 3 |
| · · 1 | 2 · · | · · 7 |
| 3 · · | · · 8 | · 4 · |
+-------+-------+-------+

+-------+-------+-------+
| 7 6 2 | 3 9 5 | 4 8 1 |
| 9 1 8 | 4 2 6 | 7 3 5 |
| 4 5 3 | 7 8 1 | 9 2 6 |
+-------+-------+-------+
| 5 3 9 | 8 6 2 | 1 7 4 |
| 6 8 4 | 5 1 7 | 3 9 2 |
| 1 2 7 | 9 4 3 | 6 5 8 |
+-------+-------+-------+
| 2 4 5 | 6 7 9 | 8 1 3 |
| 8 9 1 | 2 3 4 | 5 6 7 |
| 3 7 6 | 1 5 8 | 2 4 9 |
+-------+-------+-------+
数独已全解
共计用时 31.01515769958496 毫秒

总结

数独难度大致可分为 3 种:

  • 简单,每个格子都能准确推演,运行时间 10ms 左右
  • 高级,中后期只需试错几次,运行时间 30ms 左右
  • 变态,前期几乎每次都要试错,运行时间 3000ms 左右
变态版数独:
+-------+-------+-------+
| 8 · · | · · · | · · · |
| · · 3 | 6 · · | · · · |
| · 7 · | · 9 · | 2 · · |
+-------+-------+-------+
| · 5 · | · · 7 | · · · |
| · · · | · 4 5 | 7 · · |
| · · · | 1 · · | · 3 · |
+-------+-------+-------+
| · · 1 | · · · | · 6 8 |
| · · 8 | 5 · · | · 1 · |
| · 9 · | · · · | 4 · · |
+-------+-------+-------+

写完了发现挺乱的,去搜索了一下,数独其实用深度优先搜索算法最合适,我写了一大堆有的没的,运行时间还比人家慢了 10 倍。。。主要是耗时在递归上了。

深度优先版运行变态版数独的时间大约在 300ms,等我学了相关算法再来优化吧。。。

About

sudoku with python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages