ఖచ్చితంగా, నేను మీకు సహాయం చేయగలను! బ్యాక్ట్రాకింగ్ అల్గారిథమ్ని ఉపయోగించి సాధారణ సుడోకు సాల్వర్ కోసం పైథాన్ కోడ్ ఇక్కడ ఉంది:
కొండచిలువdef find_empty_cell(board):
# Finds the next empty cell in the Sudoku board
for i in range(9):
for j in range(9):
if board[i][j] == 0:
return (i, j)
return None
def is_valid(board, num, row, col):
# Checks if the given number is valid in the given cell
for i in range(9):
if board[row][i] == num or board[i][col] == num:
return False
box_row = (row // 3) * 3
box_col = (col // 3) * 3
for i in range(box_row, box_row + 3):
for j in range(box_col, box_col + 3):
if board[i][j] == num:
return False
return True
def solve(board):
# Solves the Sudoku board using backtracking algorithm
empty_cell = find_empty_cell(board)
if not empty_cell:
return True
row, col = empty_cell
for num in range(1, 10):
if is_valid(board, num, row, col):
board[row][col] = num
if solve(board):
return True
board[row][col] = 0
return False
# Sample Sudoku board for testing
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]
]
if solve(board):
# Prints the solved Sudoku board
for i in range(9):
for j in range(9):
print(board[i][j], end=" ")
print()
else:
print("No solution exists!")
ఈ కోడ్ మూడు సహాయక విధులను నిర్వచిస్తుంది find_empty_cell()
మరియు బోర్డ్లో ఖాళీ సెల్లను కనుగొనడానికి, ఇచ్చిన సెల్లో ఇచ్చిన సంఖ్య చెల్లుబాటులో ఉందో లేదో తనిఖీ చేయండి మరియు వరుసగా బ్యాక్ట్రాకింగ్ అల్గారిథమ్ని ఉపయోగించి సుడోకు బోర్డ్ను పరిష్కరించండి is_valid()
.solve()
కోడ్ చివరిలో, ఇది సాంపిల్ సుడోకు బోర్డ్తో పరిష్కరిణిని పరీక్షిస్తుంది మరియు పరిష్కారం ఉన్నట్లయితే పరిష్కరించబడిన బోర్డుని ప్రింట్ చేస్తుంది....