python8皇后问题
时间: 2023-11-20 08:56:57 浏览: 69
python实现的八皇后问题
Python 8皇后问题是一个经典的回溯算法问题,目标是在8x8的棋盘上放置8个皇后,使得每个皇后都不会互相攻击。这里提供一个Python的解决方案:
```python
def solve_queens(n):
def is_valid(board, row, col):
for i in range(row):
if board[i] == col or \
board[i] - i == col - row or \
board[i] + i == col + row:
return False
return True
def backtrack(board, row):
if row == n:
res.append(board[:])
return
for col in range(n):
if is_valid(board, row, col):
board[row] = col
backtrack(board, row + 1)
board[row] = -1
res = []
board = [-1] * n
backtrack(board, 0)
return res
```
这个函数接受一个整数n作为参数,返回一个列表,其中包含所有可能的解决方案。每个解决方案都是一个长度为n的列表,表示每行皇后所在的列数。
阅读全文