首页/科普/正文
n皇后java

 2024年05月01日  阅读 642  评论 0

摘要:解决N皇后问题的回溯算法代码下面是一个使用回溯算法解决N皇后问题的示例代码:```pythondefis_safe(board,row,col,n):#检查同一列上是否有皇后foriinrange(r

解决 N 皇后问题的回溯算法代码

下面是一个使用回溯算法解决 N 皇后问题的示例代码:

```python

def is_safe(board, row, col, n):

检查同一列上是否有皇后

for i in range(row):

if board[i][col]:

return False

检查左上到右下的对角线上是否有皇后

for i, j in zip(range(row, 1, 1), range(col, 1, 1)):

if board[i][j]:

return False

检查右上到左下的对角线上是否有皇后

for i, j in zip(range(row, 1, 1), range(col, n)):

if board[i][j]:

return False

return True

def solve_n_queens_util(board, row, n, result):

if row == n:

result.append(["".join(["Q" if cell else "." for cell in row]) for row in board])

return

for col in range(n):

if is_safe(board, row, col, n):

board[row][col] = 1

solve_n_queens_util(board, row 1, n, result)

board[row][col] = 0

def solve_n_queens(n):

board = [[0 for _ in range(n)] for _ in range(n)]

result = []

solve_n_queens_util(board, 0, n, result)

return result

n = 8 皇后数量

solutions = solve_n_queens(n)

for i, solution in enumerate(solutions):

print(f"Solution {i 1}:")

for row in solution:

print(row)

print()

```

在上面的代码中,is_safe 函数用于检查在给定位置放置皇后是否安全,solve_n_queens_util 函数使用递归实现 N 皇后问题的解决,solve_n_queens 函数是入口函数,用于初始化并返回所有解决方案。

你可以将以上代码复制粘贴到 Python 解释器中执行,将会输出 N 皇后问题的所有解决方案。

版权声明:本文为 “联成科技技术有限公司” 原创文章,转载请附上原文出处链接及本声明;

原文链接:https://lckjcn.com/post/25172.html

  • 文章59758
  • 评论0
  • 浏览36624292
关于 我们
免责声明:本网站部分内容由用户自行上传,若侵犯了您的权益,请联系我们处理,谢谢! 沪ICP备2023034384号-10
免责声明:本网站部分内容由用户自行上传,若侵犯了您的权益,请联系我们处理,谢谢! RSS订阅本站最新文章 沪ICP备2023034384号-10 网站地图