输出n-皇后的所有可行解
输出n-皇后的所有可行解 (10分)
在n×n的国际棋盘上放置n个皇后,使得每个皇后都不受到攻击,即任意二个皇后不能位于同行或同列或同一条斜线上。解题思路:将棋盘从左至右,从上到下编号为0,…,n-1,皇后编号为0,…,n-1。设解为(x0,…, xn-1) , 皇后i放在棋盘的第i行的第xi列上。 约束条件为:
xi≠xj(不在一列上)
xi-i≠xj-j(不在一条斜线上)
xi+i≠xj+j(不在一条斜线上) 2)和3)等价于:|i-j|≠|xi-xj|
采用回溯算法思想,解决n个皇后问题的代码如下所示
原创
2020-12-19 13:18:04 ·
1877 阅读 ·
1 评论