算法试验8皇后问题-回溯法 PS参考了百度的一些大神的思路
来源:互联网 发布:window socket 编程 编辑:程序博客网 时间:2024/05/21 12:41
package com.shiyan1;public class EightQ {public static void main(String[] args) {EightQ queen=new EightQ();}public static int countNum=0;//方案数public static int queenNum=8;//皇后数(矩阵行列数)public static int cols[]=new int[queenNum];//定义摆法public EightQ(){getArrangement(0);//System.out.println("/n");System.out.println(queenNum+"皇后问题有"+countNum+"摆法!");}private void getArrangement(int n) {// TODO Auto-generated method stub//遍历该列所有不合法的行,并用rows数组记录,不合法记row[i]=true;boolean rows[]=new boolean[queenNum];for(int i=0;i<n;i++){rows[cols[i]]=true;int d=n-i;if(cols[i]-d>=0){rows[cols[i]-d]=true;}if(cols[i]+d<=queenNum-1){rows[cols[i]+d]=true;}}for(int i=0;i<queenNum;i++){//判断该行是否合法if(rows[i])continue;//设置当前列合法棋子所在行数cols[n]=i;//当前列不为最后一列时if(n<queenNum-1){getArrangement(n+1);}else{//累计方案个数countNum++;//打印棋盘信息printChessBoard();}}}private void printChessBoard() {// TODO Auto-generated method stubSystem.out.println("第"+countNum+"种走法");for(int i=0;i<queenNum;i++){for(int j=0;j<queenNum;j++){if(i==cols[j]){System.out.print("Q");}else{System.out.print("*");}//System.out.print("/n");}}}}
0 0
- 算法试验8皇后问题-回溯法 PS参考了百度的一些大神的思路
- “皇后”问题的回溯算法
- 国际象棋“皇后”问题的回溯算法
- 国际象棋“皇后”问题的回溯算法
- 国际象棋“皇后”问题的回溯算法
- 国际象棋“皇后”问题的回溯算法
- 国际象棋“皇后”问题的回溯算法
- 国际象棋“皇后”问题的回溯算法
- 国际象棋“皇后”问题的回溯算法
- 国际象棋“皇后”问题的回溯算法
- 国际象棋“皇后”问题的回溯算法
- 国际象棋“皇后”问题的回溯算法
- 国际象棋“皇后”问题的回溯算法
- 国际象棋“皇后”问题的回溯算法
- 国际象棋“皇后”问题的回溯算法
- 国际象棋“皇后”问题的回溯算法
- 八皇后问题的回溯算法
- 回溯算法 8皇后问题的一种解法 适合初学者观察整个回溯的过程
- Source Insight恢复默认配置
- js
- 程序员第一定律:关于技能与收入
- 重构摘要10_简化函数调用
- 自动更新时,设置IIS MIME类型 支持apk和.ipa的文件下载
- 算法试验8皇后问题-回溯法 PS参考了百度的一些大神的思路
- log4j配置祥解
- linux c netcdf 安装
- 一种高效无锁内存队列的实现
- 在Eclipse中使用JUnit4进行单元测试(初级篇)
- Die negativen ESO Gold kaufen
- 黑马程序员-Java项目之交通灯管理系统
- OpenCV中对数组(矩阵)的操作的函数表
- C++模版