如何把八皇后问题的所有解求出来?

GSTARRAW 2008-01-18 11:45:09
如题!
...全文
160 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ywza77 2010-05-07
  • 打赏
  • 举报
回复 1
第1组解:(1,1)、(2,5)、(3,8)、(4,6)、(5,3)、(6,7)、(7,2)、(8,4)、
第2组解:(1,1)、(2,6)、(3,8)、(4,3)、(5,7)、(6,4)、(7,2)、(8,5)、
第3组解:(1,1)、(2,7)、(3,4)、(4,6)、(5,8)、(6,2)、(7,5)、(8,3)、
第4组解:(1,1)、(2,7)、(3,5)、(4,8)、(5,2)、(6,4)、(7,6)、(8,3)、
第5组解:(1,2)、(2,4)、(3,6)、(4,8)、(5,3)、(6,1)、(7,7)、(8,5)、
第6组解:(1,2)、(2,5)、(3,7)、(4,1)、(5,3)、(6,8)、(7,6)、(8,4)、
第7组解:(1,2)、(2,5)、(3,7)、(4,4)、(5,1)、(6,8)、(7,6)、(8,3)、
第8组解:(1,2)、(2,6)、(3,1)、(4,7)、(5,4)、(6,8)、(7,3)、(8,5)、
第9组解:(1,2)、(2,6)、(3,8)、(4,3)、(5,1)、(6,4)、(7,7)、(8,5)、
第10组解:(1,2)、(2,7)、(3,3)、(4,6)、(5,8)、(6,5)、(7,1)、(8,4)、
第11组解:(1,2)、(2,7)、(3,5)、(4,8)、(5,1)、(6,4)、(7,6)、(8,3)、
第12组解:(1,2)、(2,8)、(3,6)、(4,1)、(5,3)、(6,5)、(7,7)、(8,4)、
第13组解:(1,3)、(2,1)、(3,7)、(4,5)、(5,8)、(6,2)、(7,4)、(8,6)、
第14组解:(1,3)、(2,5)、(3,2)、(4,8)、(5,1)、(6,7)、(7,4)、(8,6)、
第15组解:(1,3)、(2,5)、(3,2)、(4,8)、(5,6)、(6,4)、(7,7)、(8,1)、
第16组解:(1,3)、(2,5)、(3,7)、(4,1)、(5,4)、(6,2)、(7,8)、(8,6)、
第17组解:(1,3)、(2,5)、(3,8)、(4,4)、(5,1)、(6,7)、(7,2)、(8,6)、
第18组解:(1,3)、(2,6)、(3,2)、(4,5)、(5,8)、(6,1)、(7,7)、(8,4)、
第19组解:(1,3)、(2,6)、(3,2)、(4,7)、(5,1)、(6,4)、(7,8)、(8,5)、
第20组解:(1,3)、(2,6)、(3,2)、(4,7)、(5,5)、(6,1)、(7,8)、(8,4)、
第21组解:(1,3)、(2,6)、(3,4)、(4,1)、(5,8)、(6,5)、(7,7)、(8,2)、
第22组解:(1,3)、(2,6)、(3,4)、(4,2)、(5,8)、(6,5)、(7,7)、(8,1)、
第23组解:(1,3)、(2,6)、(3,8)、(4,1)、(5,4)、(6,7)、(7,5)、(8,2)、
第24组解:(1,3)、(2,6)、(3,8)、(4,1)、(5,5)、(6,7)、(7,2)、(8,4)、
第25组解:(1,3)、(2,6)、(3,8)、(4,2)、(5,4)、(6,1)、(7,7)、(8,5)、
第26组解:(1,3)、(2,7)、(3,2)、(4,8)、(5,5)、(6,1)、(7,4)、(8,6)、
第27组解:(1,3)、(2,7)、(3,2)、(4,8)、(5,6)、(6,4)、(7,1)、(8,5)、
第28组解:(1,3)、(2,8)、(3,4)、(4,7)、(5,1)、(6,6)、(7,2)、(8,5)、
第29组解:(1,4)、(2,1)、(3,5)、(4,8)、(5,2)、(6,7)、(7,3)、(8,6)、
第30组解:(1,4)、(2,1)、(3,5)、(4,8)、(5,6)、(6,3)、(7,7)、(8,2)、
第31组解:(1,4)、(2,2)、(3,5)、(4,8)、(5,6)、(6,1)、(7,3)、(8,7)、
第32组解:(1,4)、(2,2)、(3,7)、(4,3)、(5,6)、(6,8)、(7,1)、(8,5)、
第33组解:(1,4)、(2,2)、(3,7)、(4,3)、(5,6)、(6,8)、(7,5)、(8,1)、
第34组解:(1,4)、(2,2)、(3,7)、(4,5)、(5,1)、(6,8)、(7,6)、(8,3)、
第35组解:(1,4)、(2,2)、(3,8)、(4,5)、(5,7)、(6,1)、(7,3)、(8,6)、
第36组解:(1,4)、(2,2)、(3,8)、(4,6)、(5,1)、(6,3)、(7,5)、(8,7)、
第37组解:(1,4)、(2,6)、(3,1)、(4,5)、(5,2)、(6,8)、(7,3)、(8,7)、
第38组解:(1,4)、(2,6)、(3,8)、(4,2)、(5,7)、(6,1)、(7,3)、(8,5)、
第39组解:(1,4)、(2,6)、(3,8)、(4,3)、(5,1)、(6,7)、(7,5)、(8,2)、
第40组解:(1,4)、(2,7)、(3,1)、(4,8)、(5,5)、(6,2)、(7,6)、(8,3)、
第41组解:(1,4)、(2,7)、(3,3)、(4,8)、(5,2)、(6,5)、(7,1)、(8,6)、
第42组解:(1,4)、(2,7)、(3,5)、(4,2)、(5,6)、(6,1)、(7,3)、(8,8)、
第43组解:(1,4)、(2,7)、(3,5)、(4,3)、(5,1)、(6,6)、(7,8)、(8,2)、
第44组解:(1,4)、(2,8)、(3,1)、(4,3)、(5,6)、(6,2)、(7,7)、(8,5)、
第45组解:(1,4)、(2,8)、(3,1)、(4,5)、(5,7)、(6,2)、(7,6)、(8,3)、
第46组解:(1,4)、(2,8)、(3,5)、(4,3)、(5,1)、(6,7)、(7,2)、(8,6)、
第47组解:(1,5)、(2,1)、(3,4)、(4,6)、(5,8)、(6,2)、(7,7)、(8,3)、
第48组解:(1,5)、(2,1)、(3,8)、(4,4)、(5,2)、(6,7)、(7,3)、(8,6)、
第49组解:(1,5)、(2,1)、(3,8)、(4,6)、(5,3)、(6,7)、(7,2)、(8,4)、
第50组解:(1,5)、(2,2)、(3,4)、(4,6)、(5,8)、(6,3)、(7,1)、(8,7)、
第51组解:(1,5)、(2,2)、(3,4)、(4,7)、(5,3)、(6,8)、(7,6)、(8,1)、
第52组解:(1,5)、(2,2)、(3,6)、(4,1)、(5,7)、(6,4)、(7,8)、(8,3)、
第53组解:(1,5)、(2,2)、(3,8)、(4,1)、(5,4)、(6,7)、(7,3)、(8,6)、
第54组解:(1,5)、(2,3)、(3,1)、(4,6)、(5,8)、(6,2)、(7,4)、(8,7)、
第55组解:(1,5)、(2,3)、(3,1)、(4,7)、(5,2)、(6,8)、(7,6)、(8,4)、
第56组解:(1,5)、(2,3)、(3,8)、(4,4)、(5,7)、(6,1)、(7,6)、(8,2)、
第57组解:(1,5)、(2,7)、(3,1)、(4,3)、(5,8)、(6,6)、(7,4)、(8,2)、
第58组解:(1,5)、(2,7)、(3,1)、(4,4)、(5,2)、(6,8)、(7,6)、(8,3)、
第59组解:(1,5)、(2,7)、(3,2)、(4,4)、(5,8)、(6,1)、(7,3)、(8,6)、
第60组解:(1,5)、(2,7)、(3,2)、(4,6)、(5,3)、(6,1)、(7,4)、(8,8)、
第61组解:(1,5)、(2,7)、(3,2)、(4,6)、(5,3)、(6,1)、(7,8)、(8,4)、
第62组解:(1,5)、(2,7)、(3,4)、(4,1)、(5,3)、(6,8)、(7,6)、(8,2)、
第63组解:(1,5)、(2,8)、(3,4)、(4,1)、(5,3)、(6,6)、(7,2)、(8,7)、
第64组解:(1,5)、(2,8)、(3,4)、(4,1)、(5,7)、(6,2)、(7,6)、(8,3)、
第65组解:(1,6)、(2,1)、(3,5)、(4,2)、(5,8)、(6,3)、(7,7)、(8,4)、
第66组解:(1,6)、(2,2)、(3,7)、(4,1)、(5,3)、(6,5)、(7,8)、(8,4)、
第67组解:(1,6)、(2,2)、(3,7)、(4,1)、(5,4)、(6,8)、(7,5)、(8,3)、
第68组解:(1,6)、(2,3)、(3,1)、(4,7)、(5,5)、(6,8)、(7,2)、(8,4)、
第69组解:(1,6)、(2,3)、(3,1)、(4,8)、(5,4)、(6,2)、(7,7)、(8,5)、
第70组解:(1,6)、(2,3)、(3,1)、(4,8)、(5,5)、(6,2)、(7,4)、(8,7)、
第71组解:(1,6)、(2,3)、(3,5)、(4,7)、(5,1)、(6,4)、(7,2)、(8,8)、
第72组解:(1,6)、(2,3)、(3,5)、(4,8)、(5,1)、(6,4)、(7,2)、(8,7)、
第73组解:(1,6)、(2,3)、(3,7)、(4,2)、(5,4)、(6,8)、(7,1)、(8,5)、
第74组解:(1,6)、(2,3)、(3,7)、(4,2)、(5,8)、(6,5)、(7,1)、(8,4)、
第75组解:(1,6)、(2,3)、(3,7)、(4,4)、(5,1)、(6,8)、(7,2)、(8,5)、
第76组解:(1,6)、(2,4)、(3,1)、(4,5)、(5,8)、(6,2)、(7,7)、(8,3)、
第77组解:(1,6)、(2,4)、(3,2)、(4,8)、(5,5)、(6,7)、(7,1)、(8,3)、
第78组解:(1,6)、(2,4)、(3,7)、(4,1)、(5,3)、(6,5)、(7,2)、(8,8)、
第79组解:(1,6)、(2,4)、(3,7)、(4,1)、(5,8)、(6,2)、(7,5)、(8,3)、
第80组解:(1,6)、(2,8)、(3,2)、(4,4)、(5,1)、(6,7)、(7,5)、(8,3)、
第81组解:(1,7)、(2,1)、(3,3)、(4,8)、(5,6)、(6,4)、(7,2)、(8,5)、
第82组解:(1,7)、(2,2)、(3,4)、(4,1)、(5,8)、(6,5)、(7,3)、(8,6)、
第83组解:(1,7)、(2,2)、(3,6)、(4,3)、(5,1)、(6,4)、(7,8)、(8,5)、
第84组解:(1,7)、(2,3)、(3,1)、(4,6)、(5,8)、(6,5)、(7,2)、(8,4)、
第85组解:(1,7)、(2,3)、(3,8)、(4,2)、(5,5)、(6,1)、(7,6)、(8,4)、
第86组解:(1,7)、(2,4)、(3,2)、(4,5)、(5,8)、(6,1)、(7,3)、(8,6)、
第87组解:(1,7)、(2,4)、(3,2)、(4,8)、(5,6)、(6,1)、(7,3)、(8,5)、
第88组解:(1,7)、(2,5)、(3,3)、(4,1)、(5,6)、(6,8)、(7,2)、(8,4)、
第89组解:(1,8)、(2,2)、(3,4)、(4,1)、(5,7)、(6,5)、(7,3)、(8,6)、
第90组解:(1,8)、(2,2)、(3,5)、(4,3)、(5,1)、(6,7)、(7,4)、(8,6)、
第91组解:(1,8)、(2,3)、(3,1)、(4,6)、(5,2)、(6,5)、(7,7)、(8,4)、
第92组解:(1,8)、(2,4)、(3,1)、(4,3)、(5,6)、(6,2)、(7,7)、(8,5)、
victorinsky 2008-01-19
  • 打赏
  • 举报
回复
回溯一下,基本上就是穷举,剪枝
aozhi 2008-01-19
  • 打赏
  • 举报
回复
小弟初写博客。前几天和同事一起研究递归算法。创作的冲动被激起了。于是写了以下的程序,用递归算法实现了八王后问题。测试通过,但程序里没有把结果输出到文件。姑且用eightqueen.exe >> output.dat来把结果输出到文件吧。哈哈。

//---------------------------------------------------------------------------

#pragma hdrstop
#include <stdio.h>
#include <malloc.h>

#define BLANKCELL ' '
#define INHABITEDCELL 'O'
#define ATTACKEDCELL 'X'
#define MAXLENGTH 8
#define MAXGRID (MAXLENGTH*MAXLENGTH)

//---------------------------------------------------------------------------
char* CreateChessboard(const char* InChessboard);
void DisplayChessboard(const char* Chessboard);
char* SetAChess(const char* InChessboard, int row, int col);
void Find(const char* InChessboard, int Row, int Rows);
#pragma argsused
int main(int argc, char* argv[])
{
char *Chessboard=CreateChessboard(NULL);

Find(Chessboard, 0, MAXLENGTH);

getch();
return 0;
}
//---------------------------------------------------------------------------
char* CreateChessboard(const char* InChessboard)
{
int i;
char* Chessboard=(char*)malloc(sizeof(char)*MAXGRID);
if(!Chessboard)
{
printf("No enough space!\n");
exit(0);
}
if(InChessboard)
{
for(i=0;i<MAXGRID;i++)
{
*(Chessboard+i)=*(InChessboard+i);
}
}
else
{
for(i=0;i<MAXGRID;i++)
{
*(Chessboard+i)=BLANKCELL;
}
}
return Chessboard;
}
void DisplayChessboard(const char* Chessboard)
{
int i,j;
for(i=0;i<MAXLENGTH;i++)
{
for(j=0;j<MAXLENGTH;j++)
{
printf("%c",*(Chessboard+i*MAXLENGTH+j));
}
printf("\n");
}
printf("\n");
}
char* SetAChess(const char* InChessboard, int row, int col)
{
char *OutChessboard=CreateChessboard(InChessboard);
int i,j;

for(i=0;i<MAXLENGTH;i++)
{
*(OutChessboard+row*MAXLENGTH+i)=*(OutChessboard+row*MAXLENGTH+i)==INHABITEDCELL?INHABITEDCELL:ATTACKEDCELL;
*(OutChessboard+i*MAXLENGTH+col)=*(OutChessboard+i*MAXLENGTH+col)==INHABITEDCELL?INHABITEDCELL:ATTACKEDCELL;
}
for(i=row,j=col;i>=0&&j>=0;i--,j--)
{
*(OutChessboard+i*MAXLENGTH+j)=*(OutChessboard+i*MAXLENGTH+j)==INHABITEDCELL?INHABITEDCELL:ATTACKEDCELL;
}
for(i=row,j=col;i<MAXLENGTH&&j<MAXLENGTH;i++,j++)
{
*(OutChessboard+i*MAXLENGTH+j)=*(OutChessboard+i*MAXLENGTH+j)==INHABITEDCELL?INHABITEDCELL:ATTACKEDCELL;
}
for(i=row,j=col;i<MAXLENGTH&&j>=0;i++,j--)
{
*(OutChessboard+i*MAXLENGTH+j)=*(OutChessboard+i*MAXLENGTH+j)==INHABITEDCELL?INHABITEDCELL:ATTACKEDCELL;
}
for(i=row,j=col;i>=0&&j<MAXLENGTH;i--,j++)
{
*(OutChessboard+i*MAXLENGTH+j)=*(OutChessboard+i*MAXLENGTH+j)==INHABITEDCELL?INHABITEDCELL:ATTACKEDCELL;
}

*(OutChessboard+row*MAXLENGTH+col)=INHABITEDCELL;
return OutChessboard;
}
void Find(const char* InChessboard, int Row, int Rows)
{
int i;
static int c=0;
char *Chessboard=CreateChessboard(InChessboard);
if(Row>=Rows)
{
c++;
printf("case %d\n",c);
DisplayChessboard(InChessboard);
return Chessboard;
}
for(i=0;i<MAXLENGTH;i++)
{
if(*(InChessboard+Row*MAXLENGTH+i)==BLANKCELL)
{
Chessboard=SetAChess(InChessboard, Row, i);
Find(Chessboard, Row+1, Rows);
}
}

}



内容简介: 无论你是从事业务开发,还是从事架构设计,想要优化设计模式,数据结构与算法是必备的一门学科,本课程使用Java来讲解数据结构和算法,考虑到数据结构和算法较难,授课采用图解加算法游戏的方式。内容包括: 稀疏数组、单向队列、环形队列、单向链表、双向链表、环形链表、约瑟夫问题、栈、前缀、中缀、后缀表达式、中缀表达式转换为后缀表达式、递归与回溯、迷宫问题、八皇后问题、算法的时间复杂度、冒泡排序、选择排序、插入排序、快速排序、归并排序、希尔排序、基数排序(桶排序)、堆排序、排序速度分析、二分查找、插值查找、斐波那契查找、散列、哈希表、二叉树、二叉树与数组转换、二叉排序树(BST)、AVL树、线索二叉树、赫夫曼树、赫夫曼编码、多路查找树(B树B+树和B*树)、图、图的DFS算法和BFS、程序员常用10大算法、二分查找算法(非递归)、分治算法、动态规划算法、KMP算法、贪心算法、普里姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法马踏棋盘算法。为什么学数据结构与算法? 算法是一个程序员真正的核心竞争力。无论用哪种语言做开发,算法从程序角度而言都是灵魂内核般的存在。程序的躯体可以各式各样,但是内核一定要追求高效整洁。同时掌握了算法,大厂名企的Offer不再是梦寐以求的梦想,而让程序高效且健壮,也不再是难以完成的技术难题。所以无论是为提升自我内功修炼,还是提升程序灵魂内核健全,学习算法,都是现有可供选项里的最优解。课程大纲:为了让大家快速系统了解数据结构与算法知识全貌,我为你总结了「数据结构与算法框架图」,帮你梳理学习重点,建议收藏!! CSDN学院Java答疑群:

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧