`
sunting_bcwl
  • 浏览: 95929 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

八皇后问题Java代码

阅读更多
package org.kevin;

/**
* 八皇后问题Java代码
*
* @author Kevin Alps
*/
public class EightQueen {

int queen[][] = new int[8][8]; //保存每个格子的状态,有皇后为1,无皇后为0
int result[] = new int[8]; //保存皇后的位置,索引为行,值为列
int count = 0; //保存解法的数量

public EightQueen() {
//初始化数据
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
queen[i][j] = 0;
}
}
for (int i = 0; i < 8; i++) {
result[i] = 0;
}
}

public void search(int row) {
//如果8个皇后都放置好了,那么产生一种解法,打印出来
if (row == 8 ) {
System.out.print(++count + ": ");
for (int i = 0; i < 8; i++) {
System.out.print(result[i] + " ");
}
System.out.println();
} else {
//否则,放置第row+1个皇后,再第0到7列中依次试
for (int i = 0; i < 8; i++) {
boolean flag = true;
//将皇后放置到第i列
result[row] = i;
//判断冲突,即皇后与之前放置的皇后位置是否有冲突,主要有两种冲突,一种是列相同,一种是在同一对角线上
for (int j = 0; j < row; j++) {
if ((result[j] == i) || ((row - j) == (i - result[j]))
|| ((row - j) == (result[j] - i))) {
flag = false;
}
}
//如果冲突,则将皇后放置到下一列,即直接进入下一个for循环,如果不冲突,那么递归放置第row+2个皇后
if (flag) {
search(row + 1);
}
}
}
}

public static void main(String[] args) {
EightQueen queen = new EightQueen();
queen.search(0);
}

}
分享到:
评论

相关推荐

    八皇后问题java实现

    八皇后java实现。八皇后问题是经典的回溯算法的应用,8x8的棋盘我们可以按行或者按列确定皇后的位置,比如我这边是按行安排皇后的位置,那么堆栈里存放的则是其所在列数。

    java代码八皇后问题

    以下是实现八皇后问题的Java代码概要: ```java public class EightQueens { private static final int BOARD_SIZE = 8; private boolean[] board = new boolean[BOARD_SIZE]; private int solutions = 0; ...

    八皇后问题求解 java

    `J_LaiWeibin04_7.class` 和 `J_LaiWeibin04_7.java` 这两个文件可能是实现八皇后问题的Java源代码和编译后的字节码文件。在源代码中,你可能会看到以下关键部分: 1. 初始化棋盘:定义一个大小为8x8的二维数组,...

    八皇后JAVA解法

    八皇后的递归解法,欢迎改进讨论。 下载后把java 类放到想要的package 下即可运行

    八皇后问题Java语言程序源代码

    这是Java语言编写的八皇后问题求解程序的源代码及其输出结果。(能得到全部92种不同的解)

    八皇后算法的java实现源代码

    通过以上分析可以看出,给定的Java代码实现了八皇后问题的一个有效解决方案。它采用了一种递归加回溯的方法来寻找所有可能的解,并且在程序设计上较为简洁明了。这种解决问题的方法不仅适用于八皇后问题,还可以扩展...

    八皇后java程序源代码

    用回溯法解决八皇后问题,利用java的泛型栈,有兴趣的欢迎参考

    八皇后-java源码

    八皇后 java源码,可以任意改变变量来实现n皇后问题

    八皇后 的三种解法 (java编写)

    总的来说,这三份Java代码为我们提供了学习和理解八皇后问题的不同角度,包括回溯法、位运算以及可能的优化技巧。通过阅读和分析这些代码,我们可以深入理解如何用编程语言解决实际问题,同时提升我们的算法设计和...

    八皇后问题Java

    八皇后的Java解法,鉴于大部分八皇后都是用C和C++写的给一个Java代码供参考

    八皇后问题遗传算法java实现

    遗传算法实现N皇后-java代码

    八皇后问题-Java大作业

    在Java中,解决八皇后问题通常使用递归。递归策略是自底向上的尝试和回溯,即先尝试在当前行放置皇后,如果发现无法放置(因为与已放置的皇后冲突),则退回至上一行,并改变上一行皇后的位置,继续尝试。这一过程...

    自己写的java八皇后小游戏源代码

    Java八皇后小游戏是一款基于经典八皇后问题开发的桌面应用程序,主要使用了Java的Swing库来构建用户界面。八皇后问题是一个著名的回溯算法问题,它要求在8×8的棋盘上放置8个皇后,使得任何两个皇后都无法在同一行、...

    用JAVA代码实现的八皇后问题!

    用JAVA代码实现的八皇后问题,已经编译调试通过,可以直接运行!

    八皇后问题的LasVegas算法与回溯法的混合实现

    八皇后问题的MonteCarlo算法与回溯法的混合实现,代码精确实现,实验报告或者说论文有详细的阐述!

    JAVA利用递归解八皇后

    利用递归原理解八皇后 代码简单 注释也很详细 重要的是看你怎么分析递归操作

    八皇后的非递归

    八皇后的非递归代码:全部代码分享,方便各位java初学者学习

    八皇后等java作业-bupt

    在本压缩包“八皇后等java作业-bupt”中,主要包含了北邮(BUPU)计算机科学与技术专业的学生进行Java编程学习的一些作业。这些作业涵盖了基础的编程概念、多态性应用以及一个经典的算法问题——八皇后问题。下面...

    java八皇后可运行源代码(java文件)

    可运行的java八皇后,look一下就知道了!

Global site tag (gtag.js) - Google Analytics