八皇后问题 --- 递归解法 --- 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个白皇后,使任意的两个黑皇后都不在同一行./ ...
随机推荐
- 通过asp.net程序来控制自己开发的windows服务
public ActionResult ListService() { //获取已经保存好的windows服务名称 IList<Model.ReportServicesInfoEnt> L ...
- gitlab的搭建和linux客户端的连接
一.安装 1.新建 /etc/yum.repos.d/gitlab-ce.repo,添加以下内容 1 2 3 4 5 6 7 [gitlab-ce] name=gitlab-ce baseurl=ht ...
- webapp框架集合
1.GoAngualrjs homepage github GoAngular 可让你轻松使用 AngularJS 和 GoInstant 构建实时.多用户的应用程序. 2.JingleV home ...
- remove duplicates in Postgres(sql去重)
A frequent question in IRC is how to delete rows that are duplicates over a set of columns, keeping ...
- 无锁编程(六) - seqlock(顺序锁)
seqlock(顺序锁) 用于能够区分读与写的场合,并且是读操作很多.写操作很少,写操作的优先权大于读操作. seqlock的实现思路是,用一个递增的整型数表示sequence.写操作进入临界区时,s ...
- Linux Kernel CMPXCHG函数分析
原文地址:http://blog.csdn.net/penngrove/article/details/44175387 最近看到Linux Kernel cmpxchg的代码,对实现很不理解.上网查 ...
- Codeforces Beta Round #97 (Div. 1)
B 判矩阵的时候 出了点错 根据点积判垂直 叉积判平行 面积不能为0 #include <iostream> #include<cstdio> #include<cstr ...
- Qt之HTTPS登录
简述 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP ...
- NSThread小笔记
接口 Initializing an NSThread Object – init – initWithTarget:selector:object: Starting a Thread + deta ...
- PPTP模式跟L2TP模式有什么不同
使用VPN的时候经常会看到商家说支持PPTP模式和L2TP模式,但是许多朋友都不知道有什么区别,该用哪一个,下面给你们讲讲: 1).PPTP协议是点对点隧道协议:其将控制包与数据包分开,控制包采用TC ...