教我用Python解决八皇后问题
时间: 2023-03-28 17:02:34 浏览: 97
好的,我可以回答这个问题。八皇后问题是一个经典的回溯算法问题,可以用Python来解决。以下是一个简单的八皇后问题的解决方案:
```python
def conflict(state, nextX):
nextY = len(state)
for i in range(nextY):
if abs(state[i]-nextX) in (, nextY-i):
return True
return False
def queens(num=8, state=()):
for pos in range(num):
if not conflict(state, pos):
if len(state) == num-1:
yield (pos,)
else:
for result in queens(num, state+(pos,)):
yield (pos,) + result
for solution in queens():
print(solution)
```
这个程序会输出所有的八皇后问题的解决方案。
阅读全文