import numpy as np
sudoku = np.array([
[0,5,0,0,6,1,0,0,0],
[0,1,4,0,3,8,0,0,6],
[6,0,0,0,0,0,7,5,1],
[8,0,2,0,0,7,3,0,0],
[4,0,0,0,2,0,0,0,5],
[0,0,0,4,8,0,0,7,0],
[0,0,6,3,0,0,1,0,0],
[0,7,1,0,0,0,9,0,0],
[0,0,0,6,0,9,0,2,7]
])
def run_app():
#获取为0的行和列,如果获取不到,说明已经查询到结果,程序退出
# row,col = get_zero()
try:
row,col = get_zero()
except TypeError:
return
#从1到9以此实验,看是否满足条件
for i in range(1,10):
if can_put(i,row,col):
#满足条件就开始递归
sudoku[row,col] = i
print(row,col)
print(sudoku)
run_app()
#不满足就回溯...
sudoku[row,col]=0
#获取下一个0的位置
def get_zero():
try:
return np.argwhere(sudoku == 0)[0]
except IndexError:
#书都中不存在0元素,直接输出结果
print(sudoku)
exit(0)
# 判断数字是否可以放入
def can_put(number,row,col):
return check_row(number,row) and c