python求数独全解
来源:互联网 发布:网络代理可信吗 编辑:程序博客网 时间:2024/06/08 12:00
数独可能不止一个解,本程序试图找出全部的解,测试发现所谓的最难数独运行时间明显非常长
所谓最难的就是第一个范例,得出唯一解倒是不满,只是程序要遍历全部可能性,导致耗费时间冗长。
范例二是多解数独
范例二和范例三耗费时间极短
sudoku = [ [8, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 3, 6, 0, 0, 0, 0, 0], [0, 7, 0, 0, 9, 0, 2, 0, 0], [0, 5, 0, 0, 0, 7, 0, 0, 0], [0, 0, 0, 0, 4, 5, 7, 0, 0], [0, 0, 0, 1, 0, 0, 0, 3, 0], [0, 0, 1, 0, 0, 0, 0, 6, 8], [0, 0, 8, 5, 0, 0, 0, 1, 0], [0, 9, 0, 0, 0, 0, 4, 0, 0]]sudoku = [ [0, 0, 0, 2, 0, 0, 1, 0, 0], [8, 0, 0, 0, 0, 6, 0, 3, 0], [0, 0, 0, 0, 0, 1, 7, 5, 0], [0, 0, 0, 5, 0, 0, 4, 0, 0], [0, 7, 5, 0, 0, 0, 6, 2, 0], [0, 0, 2, 0, 0, 3, 0, 0, 0], [0, 5, 4, 7, 0, 0, 0, 0, 0], [0, 2, 0, 6, 0, 0, 0, 0, 9], [0, 0, 6, 0, 0, 9, 0, 0, 0]]sudoku = [ [0, 6, 1, 0, 3, 0, 0, 2, 0], [0, 5, 0, 0, 0, 8, 1, 0, 7], [0, 0, 0, 0, 0, 7, 0, 3, 4], [0, 0, 9, 0, 0, 6, 0, 7, 8], [0, 0, 3, 2, 0, 9, 5, 0, 0], [5, 7, 0, 3, 0, 0, 9, 0, 0], [1, 9, 0, 7, 0, 0, 0, 0, 0], [8, 0, 2, 4, 0, 0, 0, 6, 0], [0, 4, 0, 0, 1, 0, 2, 5, 0]]def show(): for i in range(len(sudoku)): for j in range(len(sudoku[i])): print(sudoku[i][j],end=" ") print("")def check(i,j,value): for item in sudoku[i]: if item == value: return False for item in sudoku: if item[j] == value: return False row = i//3 col = j//3 for r in range(row*3,row*3+3): for c in range(col*3,col*3+3): if sudoku[r][c] == value: return False return Truedef shudu(): for i in range(9): for j in range(9): if i == 8 and j == 8 and sudoku[i][j] > 0: show() print("=================") if sudoku[i][j] == 0: for value in range(1, 10): if check(i, j, value): sudoku[i][j] = value if not shudu(): sudoku[i][j] = 0 return Falseshudu()
阅读全文
0 0
- python求数独全解
- Python
- Python
- Python
- python
- Python
- PYTHON
- Python
- Python
- Python
- Python
- Python
- Python
- Python
- Python
- Python
- Python
- python
- ubuntu16 pytorch 源码编译安装教程
- 优先队列的实现
- 【Linux】虚拟机vmware的安装
- Leetcode-Add Binary
- Asp.Net开发中未整理的资料
- python求数独全解
- BZOJ 4430 赌骆驼
- 几个常用创建型设计模式总结
- [Android Memory] 手动回收ImageVIew的图片资源
- MyBatis
- JAVA工程师面试题
- SQL学习—SELECT语句
- LinuxStudyNote(45)-管道符 | 的使用与解析、| 与 grep的使用
- HSL and HSV