八皇后问题的非递归解法

转载 2013年02月19日 09:04:06
用C++实现了八皇后问题的非递归算法。原理很简单,看代码就是了,无须多说
#include <cmath>

#include <iostream>

#include <vector>

#include <algorithm>



using namespace std;

const int MAX = 8;



vector<int> board(MAX);



void show_result()

{

    for(size_t i = 0; i < board.size(); i++)

        cout<<"("<<i<<","<<board[i]<<")";

    cout<<endl;

}



int check_cross()

{

    for(size_t i = 0; i < board.size()-1; i++)

    {

        for(size_t j = i+1; j < board.size(); j++)

        {

            if((j-i) == (size_t)abs(board[i]-board[j]))

                return 1;

        }

    }

    return 0;

}



void put_chess()

{

    while(next_permutation(board.begin(), board.end()))

    {

        if(!check_cross())

        {

            show_result();

        }

    }

}



int main()

{

    for(size_t i =0; i < board.size(); i++)

        board[i] = i;

    put_chess();

    return 0;

}

八皇后问题的非递归算法

#include #include int x[100]; bool place(int k)//考察皇后k放置在x[k]列是否发生冲突 {     int i;     for(i=1;...
  • u012090884
  • u012090884
  • 2013年10月15日 21:24
  • 2058

八皇后问题的递归算法和非递归算法实现

最近我研究了一下八皇后的问题,分别用递归算法和非递归算法实现了问题求解过程。在此,分享给大家,希望提出你的意见。// EightQueens.cpp : Defines the entry point...
  • feihongchen
  • feihongchen
  • 2015年06月18日 22:40
  • 442

八皇后问题(回溯+递归)/(回溯+非递归)

八皇后问题:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。分析:我们可以尝试在将第一个皇后摆放在第0行第0列,为了不冲突,将...
  • zx3517288
  • zx3517288
  • 2016年12月15日 22:10
  • 750

回溯 八皇后问题(递归和非递归)

8皇后问题:如何在8 x 8的国际象棋棋盘上安排8个皇后,使得没有两个皇后能互相攻击?( 如果两个皇后处在同一行、同一列或同一条对角线上,则她们能互相攻击。) 解向量为长度为8的数组,记为solut...
  • march_on
  • march_on
  • 2011年11月30日 16:35
  • 5254

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

  • 2012年11月18日 21:21
  • 564KB
  • 下载

八皇后问题(非递归版)

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->...
  • phinecos
  • phinecos
  • 2008年11月01日 13:44
  • 1208

八皇后问题的非递归解法

用C++实现了八皇后问题的非递归算法。原理很简单,看代码就是了,无须多说 #include #include #include #include using namespace ...
  • wangpengqi
  • wangpengqi
  • 2013年02月19日 09:04
  • 904

一个八皇后问题代码实现

求8*8的棋盘有多少皇后
  • WitsMakeMen
  • WitsMakeMen
  • 2014年11月02日 20:53
  • 1149

八皇后问题的分析与解法

问题描述: 在8*8的国际象棋棋盘上,要求在每一行(或者每一列)放置一个皇后,且能做到在水平方向、竖直方向和斜方向都没有冲突。请列出所有解法。 根据上述描述,我们可以得到如果两个皇后Q1(x...
  • friendbkf
  • friendbkf
  • 2015年11月17日 19:38
  • 1444

八皇后问题的递归解法(最易理解的版本)

八皇后问题是一个古来而著名的问题,该问题是19世纪著名的数学家高斯同学提出来的。在8*8的国际象棋上摆放八个皇后,使其不能互相的攻击,也就是说,任意的两个皇后不能放在同一行或则是同一个列或者是同一个对...
  • nmgrd
  • nmgrd
  • 2017年03月23日 20:56
  • 900
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:八皇后问题的非递归解法
举报原因:
原因补充:

(最多只允许输入30个字)