用python实现八皇后问题求解,以序列格式存储结果输出,例如 [0,6,4,7,1,3,5,2] 指代在第 0-7 行依次在指定列落子,通过self.solves.append([0,6,4,7,1,3,5,2]) 添加求解结果,最后结果以解的list格式输出,不用给出结果
时间: 2023-05-24 12:07:19 浏览: 55
以下是八皇后问题的 Python 代码,它使用递归来实现:
class EightQueens:
def __init__(self):
self.solves = []
def solve(self):
self.try_queen_in_row(0, [])
def try_queen_in_row(self, row, positions):
if row == 8: # 找到了一个解
self.solves.append(positions)
return
for col in range(8):
if self.is_valid(row, col, positions):
self.try_queen_in_row(row+1, positions+[col])
def is_valid(self, row, col, positions):
for r, c in enumerate(positions):
if c == col or r+c == row+col or r-c == row-col:
return False
return True
eight_queens = EightQueens()
eight_queens.solve()
print(eight_queens.solves)
输出结果将是一组符合要求的列表,每个列表包含了一组八皇后的解。