写一个python八位皇后程序,在程序中写上备注
时间: 2024-03-16 08:41:20 浏览: 52
八皇后代码及程序
好的,这是一个八皇后问题的 Python 实现,注释已经写在代码中了:
```python
def is_valid(board, row, col):
"""
检查当前位置是否可以放置皇后
"""
for i in range(row):
# 检查同一列是否已经有皇后
if board[i] == col:
return False
# 检查对角线是否已经有皇后
if abs(board[i] - col) == abs(i - row):
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
# 测试八皇后问题的解
print(solve_n_queens(8))
```
希望能够帮到你!
阅读全文