- 130
- 0
- 约 10页
- 2016-03-29 发布于重庆
- 举报
关于八皇后问题的C课程设计
课 程 设 计 报 告
学院、系: 专业名称: 课程设计科目 VC++程序课程设计 学生姓名: 指导教师: 完成时间:
八皇后问题
一、设计任务与目标
用c++语言平台将的92种结构予以实现的主要思路以及思想:1. 解决冲突问题:
这个问题包括了行,列,两条对角线;
列:规定每一列放一个皇后,不会造成列上的冲突;
行:当第I行被某个皇后占领后,则同一行上的所有空格都不能再放皇后,要把以I为下标的标记置为被占领状态;
对角线:对角线有两个方向。在这把这两条对角线称为:主对角线和从对角线。在同一对角线上的所有点(设下标为(i,j)),要么(i+j)是常数,要么(i-j)是常数。因此,当第I个皇后占领了第J列后,要同时把以(i+j)、(i-j)为下标的标记置为被占领状态。
2数据结构的实现
数组a[I]:a [I]表示第I个皇后放置的列;I的范围:1..8;
对角线数组:b[j](主对角线),c[j](从对角线),根据程序的运行,去决定主从对角线是否放入皇后;
A、 数据初始化。
B、 从n列开始摆放第n个皇后(因为这样便可以符合每一竖列一个皇后的要求),先测试当前位置(n,m)是否等于0(未被占领)。如果是,摆放第n个皇后,并宣布占领(记得横列竖列斜列一起设置),接着进行递归;如果不是,测试下一个位置(n,m+1),但是如果当n=8,m=8时,发现此时已无法摆放时,便要进行回溯。从问题的某一种可能出发,搜索从这种情况能出发,继续搜索,这种不断“回溯”的寻找解的方法,称为“回溯法”。、当n8时,便打印出结果。
全部源程序清单
#include conio.h
#include math.h
#include stdlib.h
#include stdio.h
#include iostream.h
#define QUEENS 8
int iCount = 0; //!记录解的序号的全局变量。
int Site[QUEENS]; //!记录皇后在各行上的放置位置的全局数组。
void Queen(int n); //!递归求解的函数。
void Output();//!输出一个解。
int IsValid(int n);
//!判断第n个皇后放上去之后,是否有〉冲突。
void main() /*----------------------------Main:主函数。----------------------------*/
{ system(title 递归算法八皇后问题 );
cout 八皇后的解法:endl;
cout -------------------------------------endl;
Queen(0); //!从第0行开始递归试探。
getch();//!按任意键返回。
}
void Queen(int n) /*-----------------Queen:递归放置第n个皇后,程序的核心!----------------*/
{ int i;
if(n == QUEENS) //!参数n从0开始,等于8时便试出了一个解,将它输出并回溯。
{ Output(); return; }
for(i = 1 ; i = QUEENS ; i++) //!n还没到8,在第n行的各个行上依次试探。
{ Site[n] = i; //!在该行的第i行上放置皇后。
if(IsValid(n)) //!如果放置没有冲突,就开始下一行的试探。
Queen(n + 1); }}
int IsValid(int n) /*------IsValid:判断第n个皇后放上去之后,是否合法,即是否无冲突。------*/
{ int i;
for(i = 0 ; i n ; i++) //!将第n个皇后的位置依次于前面n-1个皇后的位置比较。
{ if(Site[i] == Site[n]) //!两个皇后在同一列上,返回0。
return 0;
if(abs(Site[i] - Site[n]) == (n - i)) //!两个皇后在同一对角线上,返回0。
return 0; }
return 1; //!没有冲突,返回1。
}
void Output()/*------------Output:输出一个解,即一种没有冲突的放置方案。-
您可能关注的文档
最近下载
- 大数据技术融合人力资源管理.docx VIP
- 2026年中国大型广告牌行业市场数据调查、监测研究报告.docx
- 2025年江苏省建筑施工企业主要负责人安全员A证考核考试题库附答案.docx
- 新编语文课程与教学论讲义.docx VIP
- 苏科版数学八年级下册期中测试试卷-含答案02.pdf VIP
- 03-【传统村落保护规划】宁波韩岭古村总体改造方案-DC国际-366页.pdf VIP
- 汽车调光玻璃行业市场前景及投资研究报告:天幕玻璃,国产厂商突破瓶颈,价格下探.pdf VIP
- 金融大数据与人工智能的融合趋势.docx VIP
- 上肢康复训练系统技术参数.docx VIP
- 五年级下册每日计算.pdf VIP
原创力文档

文档评论(0)