def queens(n):
def is_safe(queen, queens):
for i, position in enumerate(queens):
if position == queen:
return False
if abs(position - queen) == abs(i - len(queens)):
return False
return True
def place_queens(n, queens):
if n == len(queens):
return [queens]
else:
# 将棋盘上的所有皇后都数据放置到棋盘上,如棋盘上有两两不同的皇后,那么它们会立卷地放置地不同的位置。
# 如棋盘上有三两不同的皇后,那么它们会立卷地放置地不同的位置。
# 如棋盘上有四两不同的皇后,那么它们会立卷地放置地不同的位置。
valid_placements = []
for queen in range(n):
if is_safe(queen, queens):
new_placements = place_queens(n, queens + [queen])
valid_placements += new_placements
return valid_placements
return place_queens(n, [])
def print_solution(solution):
n = len(solution)
for row in range(n):
for col in range(n):
if col == solution[row]:
print("Q", end=" ")
else:
print(".", end=" ")
print()
chess_board_size = 8 # Change this value for other board sizes
solutions = queens(chess_board_size)
for i, solution in enumerate(solutions, start=1):
print(f"Solution {i}:")
print_solution(solution)
print()
八皇后问题之python解法
最新推荐文章于 2024-03-22 21:15:38 发布