Python 是一種高級(jí)編程語(yǔ)言,它非常適合用來計(jì)算數(shù)獨(dú)謎題。數(shù)獨(dú)是一種數(shù)學(xué)謎題,它需要在九宮格內(nèi)填寫數(shù)字,使得每行、每列和每個(gè) 3x3 方塊內(nèi)都含有數(shù)字 1-9,且不能重復(fù)。
Python 提供了許多庫(kù)和函數(shù),可以幫助我們計(jì)算數(shù)獨(dú)。在下面的代碼中,我們使用了 python-constraint 庫(kù)來解決數(shù)獨(dú)謎題,該庫(kù)可以幫助我們自動(dòng)生成所有可能的方案。
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
通過上面的代碼,我們可以將數(shù)獨(dú)謎題作為一個(gè) 9x9 矩陣輸入,并得到計(jì)算結(jié)果。代碼中首先將每個(gè)空白格子的可選數(shù)字添加到問題中,然后分別加入了行、列和方塊的約束條件,最后使用 getSolutions() 方法獲取所有解決方案。如果有解決方案,我們返回其中一個(gè)解決方案,否則返回 None。
以上就是使用 Python 計(jì)算數(shù)獨(dú)的簡(jiǎn)單示例。