python实现八皇后
时间: 2023-05-26 22:04:21 浏览: 66
以下是一个Python实现的八皇后问题解决方案:
```
def is_valid(board, row, col):
# 检查行和列是否有冲突
for i in range(len(board)):
if board[row][i] == 1 or board[i][col] == 1:
return False
# 检查左上角到右下角的对角线是否有冲突
for i, j in zip(range(row, -1, -1), range(col, -1, -1)):
if board[i][j] == 1:
return False
# 检查右上角到左下角的对角线是否有冲突
for i, j in zip(range(row, -1, -1), range(col, len(board))):
if board[i][j] == 1:
return False
return True
def solve(board, row):
if row == len(board):
return True
for col in range(len(board)):
if is_valid(board, row, col):
board[row][col] = 1
if solve(board, row+1):
return True
board[row][col] = 0
return False
def print_board(board):
for row in board:
print(row)
n = 8
board = [[0]*n for i in range(n)]
solve(board, 0)
print_board(board)
```
在这个实现中,“is_valid”函数用于检查一个皇后是否与其他皇后冲突,而“solve”函数是一个递归函数,用于放置所有的皇后。最后,我们只需要调用“print_board”函数来打印解决方案。