`
metaphy
  • 浏览: 344606 次
  • 性别: Icon_minigender_1
  • 来自: 大西洋底
社区版块
存档分类
最新评论

八皇后问题

阅读更多
根据C程序改的Java的实现。以下为已知的N-皇后解数目。

public class Queens {
	private int[] queens = new int[8];	//解数组
	private int[] colflag =new int[8];	//列冲突标记
	private int[] flags1 = new int[15];	//对角线冲突标记
	private int[] flags2 = new int[15];	//对角线冲突标记
	private int roots ;
	private void trySet(int row){
		for (int column=0; column < 8; column++){
			if (colflag[column] == 0 
					&& flags1[row-column + 7]==0 
					&& flags2[row + column]==0 ){
				queens[row] = column;
				if (row <7){
					colflag[column] = 1;
					flags1[row-column + 7]= 1;
					flags2[row + column]=1;
					trySet(row+1);
				}else{
					roots ++;
					printit();
				}
				colflag[column] = 0;
				flags1[row-column + 7] = 0;
				flags2[row + column] = 0;
			}
		}
	}
	private void printit(){
		System.out.println (roots);
		for (int i = 0;i<8; i++){
			for (int j =0 ;j<8; j ++){
				if (queens[i]==j){
					System.out.print (" x");
				}else{
					System.out.print (" o");
				}
			}
			System.out.print("\n");
		}
		System.out.println("=================");
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new Queens().trySet(0);		
	}
}


  1 1  
  2 0  
  3 0  
  4 2  
  5 10  
  6 4  
  7 40  
  8 92  
  9 352  
  10 724  
  11 2680  
  12 14200  
  13 73712  
  14 365596  
  15 2279184  
  16 14772512  
  17 95815104  
  18 666090624  
  19 4968057848  
  20 39029188884  
  21 314666222712  
  22 2691008701644  
  23 24233937684440  
  24 227514171973736  
  25 2207893435808352  
分享到:
评论

相关推荐

    mfc实现八皇后问题

    八皇后问题是一个经典的计算机编程问题,它涉及到回溯算法、数据结构和图形用户界面的设计。在C++中,特别是结合MFC(Microsoft Foundation Classes)框架,可以创建具有用户友好界面的程序来解决此问题。 首先,...

    八皇后问题详细的解法-23页 PPT PDF版.pdf

    ### 八皇后问题详解 #### 一、八皇后问题背景 八皇后问题是一个经典的计算机科学问题,也是数学领域中一个有趣的挑战。这个问题来源于国际象棋的背景:如何在一个8×8的国际象棋棋盘上放置八个皇后,使得没有任何...

    爬山法、模拟退火法、遗传算法实现八皇后问题

    它们被应用于解决各种复杂问题,包括经典的八皇后问题。八皇后问题是一个著名的棋盘放置问题,要求在8×8的棋盘上摆放8个皇后,使得任意两个皇后都不能在同一行、同一列或同一对角线上。下面将详细解释这些方法以及...

    八皇后问题 c++ 八皇后问题 c++

    八皇后问题 c++ 八皇后问题 c++ 八皇后问题 c++

    八皇后问题回溯求解 matlab

    用回溯求解法求解八皇后问题,经典问题matlab实现,欢迎大家下载

    数据结构八皇后问题实验报告

    数据结构八皇后问题实验报告是一份详尽的项目文档,主要涵盖了八皇后问题的解决方案,该问题是一个经典的计算机科学和算法问题,源自国际象棋。报告的作者花费了两周时间完成,显然投入了大量的精力和思考。 八皇后...

    八皇后问题课程设计论文

    八皇后问题课程设计论文

    八皇后问题源码 python

    解决八皇后问题的源码,带有注释,由于数据结构即算法的学习,如有其他需要,请留言

    汇编解决八皇后问题

    作业代码,汇编写八皇后问题,自己写了一份,在网上找的也在里面

    C++八皇后问题代码,递归实现

    八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或...

    八皇后问题的c语言实现

    linux c语言实现八皇后问题。希望对你的学习

    八皇后问题 C语言

    八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一...

    八皇后问题求解 java

    八皇后问题是一个经典的问题,在棋盘上放置八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上。这个问题最早由数学家欧拉提出,后来被广泛用来作为回溯法的典型示例。在这个Java程序...

    八皇后问题MFC实现

    八皇后问题是计算机科学中一个经典的回溯算法应用实例,它要求在8×8的棋盘上摆放8个皇后,使得任何两个皇后都无法在同一行、同一列或同一对角线上互相攻击。这个问题最早由数学家路易斯·卡洛在19世纪提出,至今...

    Python实现八皇后问题示例代码

    ### Python 实现八皇后问题详解 #### 一、八皇后问题背景及定义 八皇后问题是一个经典的计算机科学问题,最早由国际象棋爱好者马克斯·贝瑟尔在1848年提出。该问题是在一个8×8的国际象棋棋盘上放置8个皇后,使得...

    八皇后问题C++ 代码

    这个文档关于八皇后问题,一共两种代码,输出分别为0和1的矩阵或者直接输出位置序号两种输出结果。代码是C++语言编写。

    数据结构课程作业八皇后问题源代码

    八皇后问题源代码解析 八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。它的目标是在n×n格的棋盘上摆放n个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上。解决这个问题...

    八皇后问题 递归算法 可以输入皇后的值

    八皇后问题 递归算法 可以输入皇后的值 输出排列的结果

    回溯算法求解 八皇后问题

    八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线...

    八皇后问题c++回溯法

    经典的算法,八皇后问题,c++实现,回溯法

Global site tag (gtag.js) - Google Analytics