八皇后问题 --- 递归解法 --- java代码
八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n×n,而皇后个数也变成n。当且仅当 n = 1 或 n ≥ 4 时问题有解[1]。 以上内容摘自维基百科:http://zh.wikipedia.org/wiki/%E5%85%AB%E7%9A%87%E5%90%8E%E9%97%AE%E9%A2%98
代码如下:
public class Demo {
public static void main(String[] args) {
nextRowPlace(START_ROW);
}
private static final int ROW = 8, COL = 8, START_ROW = 0, START_COL = 0;
private static boolean[][] board = new boolean[8][8];
private static void nextRowPlace(final int row) {
if(row == ROW){
print();
return;
}
for(int j=START_COL; j!=COL; ++j)
if(checkPosValid(row, j)){
board[row][j] = true;
nextRowPlace(row+1);
board[row][j] = false;
}
return;
}
private static boolean checkPosValid(final int row, final int col) {
for(int i=START_ROW; i!=ROW; ++i)
if(board[i][col])
return false;
for(int i=row, j=col; i!=START_ROW-1 && j!=START_COL-1; --i, --j)
if(board[i][j])
return false;
for(int i=row, j=col; i!=START_ROW-1 && j!= COL; --i, ++j)
if(board[i][j])
return false;
return true;
}
private static int count = 0;
private static void print() {
System.out.println("--- --- --- --- --- " + ++count +" --- ---");
for(int i=START_ROW; i!=ROW; ++i){
for(int j=START_COL; j!=COL; ++j)
System.out.print(board[i][j] ? "O " : "X ");
System.out.println();
}
System.out.println();
return;
}
}
运行结果如下:
--- --- --- --- --- 1 --- --- O X X X X X X X X X X X O X X X X X X X X X X O X X X X X O X X X X O X X X X X X X X X X X O X X O X X X X X X X X X O X X X X --- --- --- --- --- 2 --- --- O X X X X X X X X X X X X O X X X X X X X X X O X X O X X X X X X X X X X X O X X X X O X X X X X O X X X X X X X X X X O X X X --- --- --- --- --- 3 --- --- O X X X X X X X X X X X X X O X X X X O X X X X X X X X X O X X X X X X X X X O X O X X X X X X X X X X O X X X X X O X X X X X --- --- --- --- --- 4 --- --- O X X X X X X X X X X X X X O X X X X X O X X X X X X X X X X O X O X X X X X X X X X O X X X X X X X X X O X X X X O X X X X X --- --- --- --- --- 5 --- --- X O X X X X X X X X X O X X X X X X X X X O X X X X X X X X X O X X O X X X X X O X X X X X X X X X X X X X O X X X X X O X X X --- --- --- --- --- 6 --- --- X O X X X X X X X X X X O X X X X X X X X X O X O X X X X X X X X X O X X X X X X X X X X X X O X X X X X O X X X X X O X X X X --- --- --- --- --- 7 --- --- X O X X X X X X X X X X O X X X X X X X X X O X X X X O X X X X O X X X X X X X X X X X X X X O X X X X X O X X X X O X X X X X --- --- --- --- --- 8 --- --- X O X X X X X X X X X X X O X X O X X X X X X X X X X X X X O X X X X O X X X X X X X X X X X O X X O X X X X X X X X X O X X X --- --- --- --- --- 9 --- --- X O X X X X X X X X X X X O X X X X X X X X X O X X O X X X X X O X X X X X X X X X X O X X X X X X X X X X O X X X X X O X X X --- --- --- --- --- 10 --- --- X O X X X X X X X X X X X X O X X X O X X X X X X X X X X O X X X X X X X X X O X X X X O X X X O X X X X X X X X X X O X X X X --- --- --- --- --- 11 --- --- X O X X X X X X X X X X X X O X X X X X O X X X X X X X X X X O O X X X X X X X X X X O X X X X X X X X X O X X X X O X X X X X --- --- --- --- --- 12 --- --- X O X X X X X X X X X X X X X O X X X X X O X X O X X X X X X X X X O X X X X X X X X X O X X X X X X X X X O X X X X O X X X X --- --- --- --- --- 13 --- --- X X O X X X X X O X X X X X X X X X X X X X O X X X X X O X X X X X X X X X X O X O X X X X X X X X X O X X X X X X X X X O X X --- --- --- --- --- 14 --- --- X X O X X X X X X X X X O X X X X O X X X X X X X X X X X X X O O X X X X X X X X X X X X X O X X X X O X X X X X X X X X O X X --- --- --- --- --- 15 --- --- X X O X X X X X X X X X O X X X X O X X X X X X X X X X X X X O X X X X X O X X X X X O X X X X X X X X X X O X O X X X X X X X --- --- --- --- --- 16 --- --- X X O X X X X X X X X X O X X X X X X X X X O X O X X X X X X X X X X O X X X X X O X X X X X X X X X X X X X O X X X X X O X X --- --- --- --- --- 17 --- --- X X O X X X X X X X X X O X X X X X X X X X X O X X X O X X X X O X X X X X X X X X X X X X O X X O X X X X X X X X X X X O X X --- --- --- --- --- 18 --- --- X X O X X X X X X X X X X O X X X O X X X X X X X X X X O X X X X X X X X X X O O X X X X X X X X X X X X X O X X X X O X X X X --- --- --- --- --- 19 --- --- X X O X X X X X X X X X X O X X X O X X X X X X X X X X X X O X O X X X X X X X X X X O X X X X X X X X X X X O X X X X O X X X --- --- --- --- --- 20 --- --- X X O X X X X X X X X X X O X X X O X X X X X X X X X X X X O X X X X X O X X X O X X X X X X X X X X X X X X O X X X O X X X X --- --- --- --- --- 21 --- --- X X O X X X X X X X X X X O X X X X X O X X X X O X X X X X X X X X X X X X X O X X X X O X X X X X X X X X O X X O X X X X X X --- --- --- --- --- 22 --- --- X X O X X X X X X X X X X O X X X X X O X X X X X O X X X X X X X X X X X X X O X X X X O X X X X X X X X X O X O X X X X X X X --- --- --- --- --- 23 --- --- X X O X X X X X X X X X X O X X X X X X X X X O O X X X X X X X X X X O X X X X X X X X X X O X X X X X O X X X X O X X X X X X --- --- --- --- --- 24 --- --- X X O X X X X X X X X X X O X X X X X X X X X O O X X X X X X X X X X X O X X X X X X X X X O X X O X X X X X X X X X O X X X X --- --- --- --- --- 25 --- --- X X O X X X X X X X X X X O X X X X X X X X X O X O X X X X X X X X X O X X X X O X X X X X X X X X X X X X O X X X X X O X X X --- --- --- --- --- 26 --- --- X X O X X X X X X X X X X X O X X O X X X X X X X X X X X X X O X X X X O X X X O X X X X X X X X X X O X X X X X X X X X O X X --- --- --- --- --- 27 --- --- X X O X X X X X X X X X X X O X X O X X X X X X X X X X X X X O X X X X X O X X X X X O X X X X O X X X X X X X X X X X O X X X --- --- --- --- --- 28 --- --- X X O X X X X X X X X X X X X O X X X O X X X X X X X X X X O X O X X X X X X X X X X X X O X X X O X X X X X X X X X X O X X X --- --- --- --- --- 29 --- --- X X X O X X X X O X X X X X X X X X X X O X X X X X X X X X X O X O X X X X X X X X X X X X O X X X O X X X X X X X X X X O X X --- --- --- --- --- 30 --- --- X X X O X X X X O X X X X X X X X X X X O X X X X X X X X X X O X X X X X O X X X X O X X X X X X X X X X X O X X O X X X X X X --- --- --- --- --- 31 --- --- X X X O X X X X X O X X X X X X X X X X O X X X X X X X X X X O X X X X X O X X O X X X X X X X X X O X X X X X X X X X X X O X --- --- --- --- --- 32 --- --- X X X O X X X X X O X X X X X X X X X X X X O X X X O X X X X X X X X X X O X X X X X X X X X O O X X X X X X X X X X X O X X X --- --- --- --- --- 33 --- --- X X X O X X X X X O X X X X X X X X X X X X O X X X O X X X X X X X X X X O X X X X X X X X X O X X X X O X X X O X X X X X X X --- --- --- --- --- 34 --- --- X X X O X X X X X O X X X X X X X X X X X X O X X X X X O X X X O X X X X X X X X X X X X X X O X X X X X O X X X X O X X X X X --- --- --- --- --- 35 --- --- X X X O X X X X X O X X X X X X X X X X X X X O X X X X O X X X X X X X X X O X O X X X X X X X X X O X X X X X X X X X X O X X --- --- --- --- --- 36 --- --- X X X O X X X X X O X X X X X X X X X X X X X O X X X X X O X X O X X X X X X X X X O X X X X X X X X X O X X X X X X X X X O X --- --- --- --- --- 37 --- --- X X X O X X X X X X X X X O X X O X X X X X X X X X X X O X X X X O X X X X X X X X X X X X X O X X O X X X X X X X X X X X O X --- --- --- --- --- 38 --- --- X X X O X X X X X X X X X O X X X X X X X X X O X O X X X X X X X X X X X X O X O X X X X X X X X X O X X X X X X X X X O X X X --- --- --- --- --- 39 --- --- X X X O X X X X X X X X X O X X X X X X X X X O X X O X X X X X O X X X X X X X X X X X X X O X X X X X O X X X X O X X X X X X --- --- --- --- --- 40 --- --- X X X O X X X X X X X X X X O X O X X X X X X X X X X X X X X O X X X X O X X X X O X X X X X X X X X X X O X X X X O X X X X X --- --- --- --- --- 41 --- --- X X X O X X X X X X X X X X O X X X O X X X X X X X X X X X X O X O X X X X X X X X X X O X X X O X X X X X X X X X X X X O X X --- --- --- --- --- 42 --- --- X X X O X X X X X X X X X X O X X X X X O X X X X O X X X X X X X X X X X O X X O X X X X X X X X X O X X X X X X X X X X X X O --- --- --- --- --- 43 --- --- X X X O X X X X X X X X X X O X X X X X O X X X X X O X X X X X O X X X X X X X X X X X X O X X X X X X X X X O X O X X X X X X --- --- --- --- --- 44 --- --- X X X O X X X X X X X X X X X O O X X X X X X X X X O X X X X X X X X X X O X X X O X X X X X X X X X X X X O X X X X X O X X X --- --- --- --- --- 45 --- --- X X X O X X X X X X X X X X X O O X X X X X X X X X X X O X X X X X X X X X O X X O X X X X X X X X X X X O X X X X O X X X X X --- --- --- --- --- 46 --- --- X X X O X X X X X X X X X X X O X X X X O X X X X X O X X X X X O X X X X X X X X X X X X X O X X O X X X X X X X X X X X O X X --- --- --- --- --- 47 --- --- X X X X O X X X O X X X X X X X X X X O X X X X X X X X X O X X X X X X X X X O X O X X X X X X X X X X X X O X X X O X X X X X --- --- --- --- --- 48 --- --- X X X X O X X X O X X X X X X X X X X X X X X O X X X O X X X X X O X X X X X X X X X X X X O X X X O X X X X X X X X X X O X X --- --- --- --- --- 49 --- --- X X X X O X X X O X X X X X X X X X X X X X X O X X X X X O X X X X O X X X X X X X X X X X O X X O X X X X X X X X X O X X X X --- --- --- --- --- 50 --- --- X X X X O X X X X O X X X X X X X X X O X X X X X X X X X O X X X X X X X X X O X X O X X X X X O X X X X X X X X X X X X X O X --- --- --- --- --- 51 --- --- X X X X O X X X X O X X X X X X X X X O X X X X X X X X X X O X X X O X X X X X X X X X X X X O X X X X X O X X O X X X X X X X --- --- --- --- --- 52 --- --- X X X X O X X X X O X X X X X X X X X X X O X X O X X X X X X X X X X X X X O X X X X O X X X X X X X X X X X O X X O X X X X X --- --- --- --- --- 53 --- --- X X X X O X X X X O X X X X X X X X X X X X X O O X X X X X X X X X X O X X X X X X X X X X O X X X O X X X X X X X X X X O X X --- --- --- --- --- 54 --- --- X X X X O X X X X X O X X X X X O X X X X X X X X X X X X O X X X X X X X X X O X O X X X X X X X X X O X X X X X X X X X X O X --- --- --- --- --- 55 --- --- X X X X O X X X X X O X X X X X O X X X X X X X X X X X X X O X X O X X X X X X X X X X X X X O X X X X X O X X X X X O X X X X --- --- --- --- --- 56 --- --- X X X X O X X X X X O X X X X X X X X X X X X O X X X O X X X X X X X X X X O X O X X X X X X X X X X X X O X X X O X X X X X X --- --- --- --- --- 57 --- --- X X X X O X X X X X X X X X O X O X X X X X X X X X O X X X X X X X X X X X X O X X X X X O X X X X X O X X X X X O X X X X X X --- --- --- --- --- 58 --- --- X X X X O X X X X X X X X X O X O X X X X X X X X X X O X X X X X O X X X X X X X X X X X X X O X X X X X O X X X X O X X X X X --- --- --- --- --- 59 --- --- X X X X O X X X X X X X X X O X X O X X X X X X X X X O X X X X X X X X X X X O O X X X X X X X X X O X X X X X X X X X X O X X --- --- --- --- --- 60 --- --- X X X X O X X X X X X X X X O X X O X X X X X X X X X X X O X X X X O X X X X X O X X X X X X X X X X O X X X X X X X X X X X O --- --- --- --- --- 61 --- --- X X X X O X X X X X X X X X O X X O X X X X X X X X X X X O X X X X O X X X X X O X X X X X X X X X X X X X X O X X X O X X X X --- --- --- --- --- 62 --- --- X X X X O X X X X X X X X X O X X X X O X X X X O X X X X X X X X X O X X X X X X X X X X X X O X X X X X O X X X O X X X X X X --- --- --- --- --- 63 --- --- X X X X O X X X X X X X X X X O X X X O X X X X O X X X X X X X X X O X X X X X X X X X X O X X X O X X X X X X X X X X X X O X --- --- --- --- --- 64 --- --- X X X X O X X X X X X X X X X O X X X O X X X X O X X X X X X X X X X X X X O X X O X X X X X X X X X X X O X X X X O X X X X X --- --- --- --- --- 65 --- --- X X X X X O X X O X X X X X X X X X X X O X X X X O X X X X X X X X X X X X X O X X O X X X X X X X X X X X O X X X X O X X X X --- --- --- --- --- 66 --- --- X X X X X O X X X O X X X X X X X X X X X X O X O X X X X X X X X X O X X X X X X X X X O X X X X X X X X X X O X X X O X X X X --- --- --- --- --- 67 --- --- X X X X X O X X X O X X X X X X X X X X X X O X O X X X X X X X X X X O X X X X X X X X X X X O X X X X O X X X X X O X X X X X --- --- --- --- --- 68 --- --- X X X X X O X X X X O X X X X X O X X X X X X X X X X X X X O X X X X X O X X X X X X X X X X O X O X X X X X X X X X O X X X X --- --- --- --- --- 69 --- --- X X X X X O X X X X O X X X X X O X X X X X X X X X X X X X X O X X X O X X X X X O X X X X X X X X X X X X O X X X X X O X X X --- --- --- --- --- 70 --- --- X X X X X O X X X X O X X X X X O X X X X X X X X X X X X X X O X X X X O X X X X O X X X X X X X X X O X X X X X X X X X X O X --- --- --- --- --- 71 --- --- X X X X X O X X X X O X X X X X X X X X O X X X X X X X X X O X O X X X X X X X X X X O X X X X X O X X X X X X X X X X X X X O --- --- --- --- --- 72 --- --- X X X X X O X X X X O X X X X X X X X X O X X X X X X X X X X O O X X X X X X X X X X O X X X X X O X X X X X X X X X X X X O X --- --- --- --- --- 73 --- --- X X X X X O X X X X O X X X X X X X X X X X O X X O X X X X X X X X X O X X X X X X X X X X X O O X X X X X X X X X X X O X X X --- --- --- --- --- 74 --- --- X X X X X O X X X X O X X X X X X X X X X X O X X O X X X X X X X X X X X X X O X X X X O X X X O X X X X X X X X X X O X X X X --- --- --- --- --- 75 --- --- X X X X X O X X X X O X X X X X X X X X X X O X X X X O X X X X O X X X X X X X X X X X X X X O X O X X X X X X X X X X O X X X --- --- --- --- --- 76 --- --- X X X X X O X X X X X O X X X X O X X X X X X X X X X X O X X X X X X X X X X O X O X X X X X X X X X X X X O X X X O X X X X X --- --- --- --- --- 77 --- --- X X X X X O X X X X X O X X X X X O X X X X X X X X X X X X X O X X X X O X X X X X X X X X O X O X X X X X X X X X O X X X X X --- --- --- --- --- 78 --- --- X X X X X O X X X X X O X X X X X X X X X X O X O X X X X X X X X X O X X X X X X X X X O X X X X O X X X X X X X X X X X X X O --- --- --- --- --- 79 --- --- X X X X X O X X X X X O X X X X X X X X X X O X O X X X X X X X X X X X X X X O X O X X X X X X X X X X O X X X X X O X X X X X --- --- --- --- --- 80 --- --- X X X X X O X X X X X X X X X O X O X X X X X X X X X O X X X X O X X X X X X X X X X X X X O X X X X X O X X X X X O X X X X X --- --- --- --- --- 81 --- --- X X X X X X O X O X X X X X X X X X O X X X X X X X X X X X X O X X X X X O X X X X X O X X X X X O X X X X X X X X X X O X X X --- --- --- --- --- 82 --- --- X X X X X X O X X O X X X X X X X X X O X X X X O X X X X X X X X X X X X X X O X X X X O X X X X X O X X X X X X X X X X O X X --- --- --- --- --- 83 --- --- X X X X X X O X X O X X X X X X X X X X X O X X X X O X X X X X O X X X X X X X X X X O X X X X X X X X X X X O X X X X O X X X --- --- --- --- --- 84 --- --- X X X X X X O X X X O X X X X X O X X X X X X X X X X X X O X X X X X X X X X O X X X X O X X X X O X X X X X X X X X O X X X X --- --- --- --- --- 85 --- --- X X X X X X O X X X O X X X X X X X X X X X X O X O X X X X X X X X X X O X X X O X X X X X X X X X X X X O X X X X X O X X X X --- --- --- --- --- 86 --- --- X X X X X X O X X X X O X X X X X O X X X X X X X X X X O X X X X X X X X X X O O X X X X X X X X X O X X X X X X X X X X O X X --- --- --- --- --- 87 --- --- X X X X X X O X X X X O X X X X X O X X X X X X X X X X X X X O X X X X X O X X O X X X X X X X X X O X X X X X X X X X O X X X --- --- --- --- --- 88 --- --- X X X X X X O X X X X X O X X X X X O X X X X X O X X X X X X X X X X X X O X X X X X X X X X O X O X X X X X X X X X O X X X X --- --- --- --- --- 89 --- --- X X X X X X X O X O X X X X X X X X X O X X X X O X X X X X X X X X X X X X O X X X X X O X X X X X O X X X X X X X X X X O X X --- --- --- --- --- 90 --- --- X X X X X X X O X O X X X X X X X X X X O X X X X X O X X X X X O X X X X X X X X X X X X X O X X X X O X X X X X X X X X O X X --- --- --- --- --- 91 --- --- X X X X X X X O X X O X X X X X O X X X X X X X X X X X X O X X X O X X X X X X X X X X O X X X X X X X X X O X X X X O X X X X --- --- --- --- --- 92 --- --- X X X X X X X O X X X O X X X X O X X X X X X X X X O X X X X X X X X X X O X X X O X X X X X X X X X X X X O X X X X X O X X X
2014-04-12
八皇后问题 --- 递归解法 --- java代码的更多相关文章
- 比赛组队问题 --- 递归解法 --- java代码 --- 八皇后问题
两队比赛,甲队为A.B.C3人,乙队为X.Y.Z3人.已知A不和X比,C不和X.Z比,请编程序找出3队赛手名单 采用了与八皇后问题相似的解法,代码如下: 如有疑问请链接八皇后问题的解法:http:// ...
- 骑士周游问题 --- 递归解法 --- java代码
骑士游历: 定义了向量的数组M,行数组X,列数组Y, 棋盘plane,计数器count,走动步数step 需要注意的是,递归函数的进入前的验证,原先的想法是传入来时的方向参数,可是这样的想法被实践否定 ...
- java实现八皇后问题(递归和循环两种方式)
循环方式: package EightQueens; public class EightQueensNotRecursive { private static final boolean AVA ...
- 八皇后问题 递归实现 C语言 超详细 思路 基础
八皇后问题 :假设 將八个皇后放到国际象棋盘上,使其两两之间无法相互攻击.共有几种摆法? 基础知识: 国际象棋里,棋盘为8X8格. 皇后每步可以沿直线.斜线 走任意格. 思路: 1.想把8个皇后放进去 ...
- 八皇后非递归(仅使用一个数组且可扩展为N皇后问题)
</pre><pre name="code" class="cpp">/* Theme:八皇后(非递归) Coder:秒针的声音 Tim ...
- [LeetCode系列]N皇后问题递归解法 -- 位操作方式
N皇后问题: 给定8*8棋盘, 放置n个皇后, 使其互相不能攻击(即2个皇后不能放在同一行/列/正反对角线上), 求解共有多少种放置方式? 这个问题的解答网上有不少, 但是位操作解法的我看到的不多. ...
- K皇后问题递归解法
#include<iostream> #include<cmath> #include<ctime> using namespace std; bool che ...
- java递归求八皇后问题解法
八皇后问题 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处 ...
- 对八皇后的补充以及自己解决2n皇后问题代码
有了上次的八皇后的基础.这次准备解决2n皇后的问题,: //问题描述// 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行./ ...
随机推荐
- Linux系统PATH变量配置
alias命令用于设置命令的别名,格式为“alias 别名=命令” 例如担心复制文件时误将文件被覆盖,可以执行alias cp=" cp -i",如此一来 每次复制命令都会询问用户 ...
- SQL SERVER ->> BCP导出数据到平面文件
--开启xp_cmdshell sp_configure ‘show advanced options’, ; GO RECONFIGURE; GO sp_configure ‘xp_cmdshell ...
- tomcat manager app 和 host maganger
当你以为你了解某个东西时,其实你不了解它.比如tomcat也可以像jboss一样有用户名和密码 就在apache-tomcat-8.0.21\conf\tomcat-users.xml里配置用户名和密 ...
- Regex 字符是不是汉字
Regex 字符是不是汉字 一. 判断一个字符是不是汉字通常有三种方法: 1.用ASCII码判断 在 ASCII码表中,英文的范围是0-127,而汉字则是大于127 string text = & ...
- TCP连接探测中的Keepalive 和心跳包
采用TCP连接的C/S模式软件,连接的双方在连接空闲状态时,如果任意一方意外崩溃.当机.网线断开或路由器故障,另一方无法得知TCP连接已经失效,除非继续在此连接上发送数据导致错误返回.很多时候,这不是 ...
- linux c 生成uuid
/********方法一**********/#include <stdio.h> #include <stdlib.h> #include <string.h> ...
- git忽略文件【转】
转自: http://cwind.iteye.com/blog/1666646 有很多文件不必使用git管理.例如Eclipse或其他IDE生成的项目文件,编译生成的各种目标或临时文件等.使用git ...
- Ubuntu下安装Git以及Git帮助手册【转】
转自:http://milkythinking.com/blog/2011/04/17/install_git_and_manual/ Git简介 Git是一个分布式版本控制系统,对应的是SVN.CV ...
- 9.cadence.封装1[原创]
一.封装中几个重要的概念 软件如下: ①.Regular pad(正规焊盘) 用在:top layer,bottom layer,internal layer(信号层) ②.thermal relie ...
- 《OD学hadoop》mac下使用VMware Fusion安装centos
一. NAT模式网络访问 (1)在linux中输入命令ifconfig查看网络信息 (2)在mac中输入命令ifconfig查看网络信息 lo0: flags=<UP,LOOPBACK,RUNN ...