早上起来想着给自己出一道算法题,想到最近看到的八皇后问题,就上网搜资料,也照着前人写的算法自己敲了一边,我认为结构很清晰,递归回溯就很方便地解决了这个问题。现在贴上代码和注释,供自己回顾总结。
一.问题描述:
在nn格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于再n×n的棋盘上放置n个皇后,任何2个皇后不妨在同一...
分类:
编程语言 时间:
2014-11-26 14:31:41
阅读次数:
189
php实现的八皇后问题,可以推广到N皇后m = $m; $this->put(0); } //判断第$n行放置位置$queen[$n] = $i 是否和前面的行冲突(同行,同列冲突,对角线冲突) /** * @param $n 第n行 * @return bool是否冲突 */ pri...
分类:
Web程序 时间:
2014-11-21 15:53:40
阅读次数:
154
思路:
使用DFS.用一维数组表达坐标,其中下标为行,元素为列.A[i]=j表示将第i行的皇后放在j列上.一行一行依次遍历(从上往下),决定放在哪列(从左往右),这样就不用判断行冲突,只需要判断列冲突和主斜线副斜线冲突.(行-列)标识主斜线, (行+列)标识副斜线.
下面上代码.
#coding=utf-8
#风格1
def queen(A, cur=0):
if ...
分类:
编程语言 时间:
2014-11-20 12:08:18
阅读次数:
202
八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?在国际象棋的规则中,皇后的攻击范围为一个米字型,也就是说两个皇后不能位于同一个纵行,横行,斜线上。
其实八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n×n,而皇后个数也变成n。当且仅当 n = 1 或 n ≥ 4 时问题有解。令一个一位数组a[n]...
分类:
其他好文 时间:
2014-11-16 17:21:30
阅读次数:
318
八皇后是一道很具典型性的题目。它的基本要求是这样的:在一个8*8的矩阵上面放置8个物体,一个矩阵点只允许放置一个物体,任意两个点不能在一行上,也不能在一列上,不能在一条左斜线上,当然也不能在一条右斜线上。 初看到这道题目,大家的第一印象是遍历,但是经过实践之后发现遍历其实不好写,而且复杂度很低。不仅...
分类:
其他好文 时间:
2014-11-01 21:36:43
阅读次数:
106
问题描述
八皇后问题是十九世纪著名数学家高斯于1850年提出的。问题是:在8*8的棋盘上摆放8个皇后,使其不能互相攻击,即任意的两个皇后不能处在同意行,同一列,或同意斜线上。可以把八皇后问题拓展为n皇后问题,即在n*n的棋盘上摆放n个皇后,使其任意两个皇后都不能处于同一行、同一列或同一斜线上。
问题分析
我们以最简单的4皇后问题分析,显然,为了使皇后不...
分类:
其他好文 时间:
2014-10-25 23:05:14
阅读次数:
407
问题描述:八皇后问题是十九世纪著名数学家高斯于1850年提出的。问题是:在8*8的棋盘上摆放8个皇后,使其不能互相攻击,即任意的两个皇后不能处在同意行,同一列,或同意斜线上。可以把八皇后问题拓展为n皇后问题,即在n*n的棋盘上摆放n个皇后,使其任意两个皇后都不能处于同一行、同一列或同一斜线上。问题分...
分类:
其他好文 时间:
2014-10-25 18:46:36
阅读次数:
199
最近看完了利用回溯法求八皇后问题,最后成功求解到92种解法,然后在看利用贪心求解背包问题,突然想到其实也可以利用回溯法求解背包问题,本质上回溯法是一个穷举的方式在求. 回溯法求解出的结果肯定是正确的,这也可以验证自己所写的贪心算法的正确性.问题描诉: 设定Wmax为最大重量,W[](0~n-...
分类:
其他好文 时间:
2014-10-22 23:19:23
阅读次数:
313
题目链接:Uva 167思路: 八皇后问题,采用回溯法解决问题。代码:#include #include using namespace std;const int MAX_N = 10;int A[MAX_N];int M[MAX_N][MAX_N];int num, Max = 0;int i....
分类:
其他好文 时间:
2014-10-16 05:28:32
阅读次数:
164
#includeusing namespace std;//当前检测的行列 是否 符合条件 //从1行1列开始 bool check(int row,int col,int *list){ for(int i=1;i=1) { array[k]=array[k]+1;//检...
分类:
其他好文 时间:
2014-10-12 16:22:18
阅读次数:
162