第一次试验---八皇后问题和聚类思考
来源:互联网 发布:淘宝网销售量最大是 编辑:程序博客网 时间:2024/06/06 02:44
public class Queen_Java {
int QUEEN_COUNT = 4; // 是多少皇后
static final int EMPTY = 0;
int[][] count = new int[QUEEN_COUNT][QUEEN_COUNT];
int[] QueenIndex = new int[QUEEN_COUNT];
int resultCount = 0;
long time = System.currentTimeMillis();
public void putQueenIndex(int row) {
for (int col = 0; col < QUEEN_COUNT; col++) {
if (count[row][col] == EMPTY) {
for (int iRow = row + 1; iRow < QUEEN_COUNT; iRow++) {
count[iRow][col]++;
if ((col - iRow + row) >= 0) {
count[iRow][col - iRow + row]++;
}
if ((col + iRow - row) < QUEEN_COUNT) {
count[iRow][col + iRow - row]++;
}
}
QueenIndex[row] = col;
if (row == QUEEN_COUNT - 1) {
print(++resultCount);
} else {
putQueenIndex(row + 1);
}
for (int iRow = row + 1; iRow < QUEEN_COUNT; iRow++) {
count[iRow][col]--;
if ((col - iRow + row) >= 0) {
count[iRow][col - iRow + row]--;
}
if ((col + iRow - row) < QUEEN_COUNT) {
count[iRow][col + iRow - row]--;
}
}
}
}
if (row == 0) {
System.out.println(QUEEN_COUNT + "皇后共有 " + resultCount + " 个解\n"
+ (System.currentTimeMillis() - time) + "毫秒");
}
}
public void print(int n) {
System.out.println(QUEEN_COUNT + "皇后的第 " + n + " 个解:");
for (int i = 0; i < QUEEN_COUNT; i++) {
for (int j = 0; j < QUEEN_COUNT; j++) {
System.out.print(QueenIndex[i] == j ? "Q" : "X");
}
System.out.println();
}
System.out.println();
}
public static void main(String[] args) {
new Queen_Java().putQueenIndex(0);
}
}
- 第一次试验---八皇后问题和聚类思考
- 第一次实验,八皇后问题
- 第一次实验——八皇后问题
- 第一次实验:NPC,回溯,八皇后问题
- 第一次实验——八皇后问题
- 第一次实验--八皇后及N皇后问题
- 第一次实验:八皇后及N皇后问题
- 第一次实验 八皇后及N皇后问题
- 算法思考---------八皇后
- 第一次交的程序大作业 -八皇后问题(1)
- 用离散数学思考八皇后问题的数据结构
- [技术文章搬家]华为oj挑战赛八皇后问题思考
- 八皇后问题和字符串全排列
- 八皇后问题-递归和迭代两种解法
- 八皇后问题,解决思路和代码
- 《c和指针》笔记--八皇后问题
- 实验一:八皇后问题和聚类分析
- 实验一:八皇后问题和聚类分析
- 【黑马程序员】java基础_面向对象
- Python持久存储
- hibernate_Restrictions用法
- AppDelegate详解
- 如果看了此文你还不懂傅里叶变换,那就过来掐死我吧
- 第一次试验---八皇后问题和聚类思考
- DML、DDL、DCL区别
- cocosPods下载更新第三方时输入的代码,加上后面几句可以提高效率
- TCP数据包分片机制详解, MTU, MSS
- 第2次实验——算法基本功 与 综合思考
- eclipse 安装Aptant 插件
- JS 复选框 全选
- 打印easyui的datagrid内容
- 硬盘中删除的文件怎么修复