Python 是一種高級編程語言,它非常適合用來計算數獨謎題。數獨是一種數學謎題,它需要在九宮格內填寫數字,使得每行、每列和每個 3x3 方塊內都含有數字 1-9,且不能重復。
Python 提供了許多庫和函數,可以幫助我們計算數獨。在下面的代碼中,我們使用了 python-constraint 庫來解決數獨謎題,該庫可以幫助我們自動生成所有可能的方案。
from constraint import * def solve_sudoku(grid): problem = Problem() for i in range(9): for j in range(9): if grid[i][j] == 0: problem.addVariable((i, j), range(1, 10)) for i in range(9): problem.addConstraint(AllDifferentConstraint(), [(i, j) for j in range(9)]) problem.addConstraint(AllDifferentConstraint(), [(j, i) for j in range(9)]) for i in range(0, 9, 3): for j in range(0, 9, 3): square = [(x, y) for x in range(i, i+3) for y in range(j, j+3)] problem.addConstraint(AllDifferentConstraint(), square) solutions = problem.getSolutions() if solutions: return solutions[0] else: return None
通過上面的代碼,我們可以將數獨謎題作為一個 9x9 矩陣輸入,并得到計算結果。代碼中首先將每個空白格子的可選數字添加到問題中,然后分別加入了行、列和方塊的約束條件,最后使用 getSolutions() 方法獲取所有解決方案。如果有解決方案,我們返回其中一個解決方案,否則返回 None。
以上就是使用 Python 計算數獨的簡單示例。
上一篇vue cms后臺
下一篇python 文件處理題