n皇后 python代码
时间: 2024-06-23 10:00:55 浏览: 61
"n皇后"是一个经典的回溯算法问题,它要在一个 n×n 的棋盘上放置 n 个皇后,使得任意两个皇后都不在同一行、同一列,以及对角线上。这是一个经典的计算机科学问题,用于演示递归和搜索算法。
以下是 Python 中解决 n皇后问题的一个简单版本的代码:
```python
def solve_n_queens(n):
def is_safe(board, row, col):
# 检查列、左上-右下对角线和右上-左下对角线
for i in range(col):
if board[row][i] == 1 or \
board[i][col] == 1 or \
board[row-i][col-i] == 1 or \
board[row+i][col-i] == 1:
return False
return True
def place_queen(board, row):
if row >= n:
solutions.append(list(board))
else:
for col in range(n):
if is_safe(board, row, col):
board[row][col] = 1
place_queen(board, row + 1)
board[row][col] = 0 # 回溯,尝试下一个位置
solutions = []
board = * n
place_queen(board, 0)
return solutions
# 测试
n = 4
result = solve_n_queens(n)
for solution in result:
print(solution)
阅读全文