用python写8皇后问题
时间: 2023-05-27 18:08:02 浏览: 79
遗传算法求解8皇后问题的python实现
5星 · 资源好评率100%
以下是使用Python编写的8皇后问题的示例代码:
```python
def is_valid(board, row, col):
"""
判断当前位置是否可以放置皇后
"""
for i in range(row):
if board[i] == col or \
abs(i - row) == abs(board[i] - col):
return False
return True
def backtrack(board, row, res):
"""
回溯求解
"""
if row == len(board):
res.append(board[:])
return
for col in range(len(board)):
if is_valid(board, row, col):
board[row] = col
backtrack(board, row + 1, res)
board[row] = -1
def solve_n_queens(n):
"""
求解N皇后问题
"""
board = [-1] * n
res = []
backtrack(board, 0, res)
return res
```
这个程序使用回溯算法来解决8皇后问题。 `is_valid()`函数用于在特定位置放置皇后是否有效。`backtrack()`函数使用递归来回溯并在棋盘上放置皇后。 `solve_n_queens()`函数则返回所有可能的解。
阅读全文