- 1
- 0
- 约小于1千字
- 约 17页
- 2026-06-10 发布于山东
- 举报
算法设计与分析本节要点CONTENTSn皇后
n皇后在n×n的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之在同一行、同一列、同一斜线上的棋子。设计算法在n×n的棋盘上放置n个皇后,使其彼此不受攻击。
n皇后在第i行第j列放置一个皇后,那么第i行的其他位置(同行),那么第j列的其他位置(同列),同一斜线上的其他位置,都不能放置皇后。
n皇后(1)定义问题的解空间n皇后问题解的形式为n元组:{x1,x2,…,xi,…,xn},分量xi表示第i个皇后放置在第i行第xi列,xi的取值为1,2,…,n。例如x2=5,表示第2个皇后放置在第2行第5列。显约束为不同行。
n皇后(2)解空间的组织结构n皇后问题的解空间是一棵m(m=n)叉树,树的深度为n。
n皇后(3)搜索解空间· 约束条件在第t行放置第t个皇后时,第t个皇后的位置不能和前t?1个皇后同列、同斜线。第i个皇后和第j个皇后不同列,即xi!=xj,并且不同斜线|i?j|!=|xi?xj|。· 限界条件该问题不存在放置方案好坏的情况,所以不需要设置限界条件。
n皇后在4×4的棋盘上放置4个皇后,使其彼此不受攻击。
n皇后
算法实现n皇后
n皇后
算法分析时间复杂度:时间复杂度为O(nn+1)。空间复杂度:空间复杂度为O(n)。n皇后
n皇后算法优化拓展:以上求解方法的解空间为m叉树,m=n,解空间过于庞
原创力文档

文档评论(0)