欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python 數獨解法

錢良釵2年前7瀏覽0評論

數獨是一種受歡迎的邏輯游戲,通過使用數字解決9x9的網格謎題。Python是一種流行的編程語言,可以用于快速解決數獨問題。以下是一個使用Python解決數獨的示例:

def is_possible(y, x, n):
# 檢查在行是否可能
for i in range(9):
if board[y][i] == n:
return False
# 檢查在列是否可能
for i in range(9):
if board[i][x] == n:
return False
# 檢查在3x3的區域是否可能
x0 = (x // 3) * 3
y0 = (y // 3) * 3
for i in range(3):
for j in range(3):
if board[y0+i][x0+j] == n:
return False
return True
def solve():
global board
for y in range(9):
for x in range(9):
if board[y][x] == 0:
for n in range(1, 10):
if is_possible(y, x, n):
board[y][x] = n
solve()
board[y][x] = 0
return
print('Solution:')
print(np.matrix(board))
board = [[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]]
print('Puzzle:')
print(np.matrix(board))
solve()

上面的代碼通過遞歸地填寫數獨問題解決,代碼首先檢查每個值是否為零。如果該值為零,程序就會使用is_possible函數檢查在該位置填寫每個數字是否可能。如果數字可行,則程序填寫該數字并遞歸地調用solve函數解決接下來的問題,直到找到解決方案。程序還可以使用numpy庫打印出解決方案和難題。