八皇后问题python代码
时间: 2023-06-01 18:03:38 浏览: 153
以下是八皇后问题的Python代码:
```python
def is_valid(arr, row, col):
for i in range(row):
if arr[i] == col or abs(arr[i] - col) == row - i:
return False
return True
def solve(arr, row, n, res):
if row == n:
res.append(arr[:])
return
for col in range(n):
if is_valid(arr, row, col):
arr[row] = col
solve(arr, row+1, n, res)
def n_queens(n):
res = []
arr = [-1] * n
solve(arr, 0, n, res)
return res
n = 8
res = n_queens(n)
for i in range(len(res)):
print("Solution", i+1)
for j in range(n):
row = ['.'] * n
row[res[i][j]] = 'Q'
print(''.join(row))
print()
```
该代码使用递归函数`solve`来求解八皇后问题。`is_valid`函数用于检查某个位置是否可以放置皇后。最后,将所有解存储在列表`res`中,并输出每个解。
阅读全文