回溯——N皇后问题

本文介绍了如何利用回溯算法解决N皇后问题。通过分析问题,设计算法,包括解空间、解空间组织结构和搜索空间的约束条件,然后提供源代码实现并展示测试结果。在N X N的棋盘上放置n个皇后,使得它们互不攻击,回溯算法能有效地找出所有可能的解决方案。
摘要由CSDN通过智能技术生成

1.问题分析

在n X n的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之同一行,同一列,同一写线上的棋子。现在n X n的棋盘上放置n个皇后,使彼此不受攻击。

如图所示,我们要在i行j列放置一个皇后,那么第i行的其他位置(同行),j列其他位置(同列),同一写线上的其他为止吗,都不能放置皇后。

条件是这么要求的,但是我们也不能杂乱无章的尝试每个为止,我们可以以行为主导:

  • 在第一行第一列放置一个皇后。
  • 在第二行放置第二个皇后,第二个皇后的位置不能跟第一个皇后同一行同一列同一条写线上·,这里不用再判断同行,因为这里本来就不同行。
  • 第三行……
  • 第四行……
  • 以此类推。

2.算法设计

(1)定义问题i解空间。

(2)解空间的组织结构:是一颗m叉树。

(3)搜索空间

约束条件:在第t行放置第t个皇后时,第t个皇后的位置不能和前t-1个皇后同列,同斜线。第i个皇

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值