数独(Python)
数独是回溯法的一个经典问题,本文主要用Python解决这个问题。
数独问题
问题引入
【问题描述】已知一个未填满的数独,编写程序将其填满,输出所有合法的结果。
【输入形式】一个未填满的数独
【输出形式】所有合法并填满的数独
【样例输入】
[[5,3,0,0,7,0,0,0,0],
[6,0,0,1,9,5,0,0,0],
[0,9,8,0,0,0,0,6,0],
[8,0,0,0,6,0,0,0,3],
[4,0,0,8,0,3,0,0,1],
[7,0,0,0,2,0,0,0,6],
[0,6,0,0,0,0,2,8,0],
[0,0,0,4,1,9,0,0,5],
[0,0,0,0,8,0,0,7,9]]【样例输出】
5 3 4 6 7 8 9 1 2 6 7 2 1 9 5 3 4 8 1 9 8 3 4 2 5 6 7 8 5 9 7 6 1 4 2 3 4 2 6 8 5 3 7 9 1 7 1 3 9 2 4 8 5 6 9 6 1 5 3 7 2 8 4 2 8 7 4 1 9 6 3 5 3 4 5 2 8 6 1 7 9
程序设计
import copy #引入copy包,用来复制棋盘
def sudoku(board): #主函数,需要一个棋盘参数(棋盘是动态变化的,所以需要copy)
def checkBoard(i,j,num): #第一个子函数c