1 / 15
文档名称:

八皇后问题课程设计报告.doc

格式:doc   大小:205KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

八皇后问题课程设计报告.doc

上传人:aena45 2021/8/11 文件大小:205 KB

下载得到文件列表

八皇后问题课程设计报告.doc

相关文档

文档介绍

文档介绍:数据结构课程设计报告
设计题目: 八皇后问题
系(院): 数学学院
专 业: 信息与计算科学
班 级: 02班
学生姓名 王天宇 学 号: 20096390
指导教师:


设计任务书
课题
名称
八 皇 后
设计
目的
用c++语言平台将一个8*8的棋盘上放上8个皇后,使得每一个皇后既攻击不到另外七个皇后,也不被另外七个皇后所攻击的92种结构予以实现.
通过这次课程设计,提高自己的编程能力,熟悉c++的编程坏境,为以后的程序开发打下基础.
实验
环境
1)      语言平台:tc++或;
2)     执行文件:
任务
要求
试编写程序实现将八个皇后放置在国际象棋棋盘的无冲突的位置上的算法,并给出所有的解。
1. 课题综述
1. 1课题的来源及意义
八皇后问题是一个古老而著名的问题,该问题是十九世纪著名的数学家高斯1850年提出的。
在国际象棋中,皇后是最有权利的一个棋子;只要别的棋子在它的同一行或同一列或同一斜线(正斜线或反斜线)上时,它就能把对方棋子吃掉。所以高斯提出了一个问题:在8*8的格的国际象棋上摆放八个皇后,使其不能相互攻击,即任意两个皇后都不能处于同一列、同一行、或同一条斜线上面,问共有多少种解法。
到了现代,随着计算机技术的飞速发展,这一古老而有趣的数学游戏问题也自然而然的被搬到了计算机上。运用所学计算机知识来试着解决这个问题是个锻炼和提高我自己编程能力和独立解决问题能力的好机会,可以使我增强信心,为我以后的编程开个好头,故我选择了这个有趣的课题。
1. 2 面对的问题
1)   解决冲突问题:
这个问题包括了行,列,两条对角线;
列:规定每一列放一个皇后,不会造成列上的冲突;
行:当第I行被某个皇后占领后,则同一行上的所有空格都不能再放皇后,要把以I为下标的标记置为被占领状态;
2) 使用数据结构的知识,用递归法解决问题。
2概要设计
本课件学生是用循环递归循环来实现的,分别一一测试了每一种摆法,并把它拥有的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](从对角线),根据程序的运行,去决定主从对角线是否放入皇后;
3. 详细设计和实现
算法描述
A、 数据初始化。
B、 从n列开始摆放第n个皇后(因为这样便可以符合每一竖列一个皇后的要求),先测试当前位置(n,m)是否等于0(未被占领)。如果是,摆放第n个皇后,并宣布占领(记得姚横列竖列斜列一起设置),接着进行递归;如果不是,测试下一个位置(n,m+1),但是如果当n<=8,m=8时,发现此时已无法摆放时,便要进行回溯。从问题的某一种可能出发,搜索从这种情况能出发,继续搜索,这种不断“回溯”的寻找解的方法,称为“回溯法”。
C、使用数组实现回溯法的思想。
D、当n>8时,便打印出结果。
E、输出函数我使用printf输出,运行形式为:第m种方法为:* * * * * * * *
5. 代码编写及详细注释
#include<iostream>
using namespace std;
int a[8],b[8],c[30],d[30];
int i, k,X=0,Y=0;
void print()
{
int t,n;
Y++;
cout<<"\tNo."<<Y<<": \n\t"; //矩阵形式的第Y种情况
for (k=1;k<9;k++)
{
n=a[k

最近更新

山东省邹平一中人教版高三12月模块考试(数学.. 9页

人教A版高二必修第二册8.5空间直线、平面的平.. 25页

北师大版高三数学 选择性必修第二册 综合测评.. 8页

17 盼 同步练习试题(含答案) 5页

三年级上语文试题-盐都区期末考试试卷及答案+.. 7页

部编版语文五年级上册期末综合复习试题(含答.. 8页

二年级下册语文单元测试-第六单元|人教(部.. 3页

一年级下册语文同步练习-8+静夜思|人教部编版.. 3页

绿地博思堂南京绿地广场综合体前期策划报告18.. 186页

一年级语文上试卷——第六单元综合测试卷(含.. 4页

六年级语文上册最后一头战象一课一练人教新课.. 2页

苏科版数学七年级下册 9.1 单项式乘单项式 同.. 6页

安徽省马鞍山市含山中学人教版高二上学期期末.. 8页

高一语文人教必修三必修四默写填空 2页

湖南省部分地区部编版高一上学期期中语文试题.. 10页

黑龙江哈尔滨虹桥中学人教版下学期期中测试八.. 10页

北师大版九下英语期末练习 专项4 条件状语从句.. 4页

人教版八年级英语阅读能力试题 5页

早产儿eugr与营养支持 28页

上海市虹口区2025年中考二模物理试题附答案 8页

精编五年级课本剧完璧归赵剧本 3页

invt英威腾CHF100A变频器说明书 4页

(整理)中性粒细胞碱性磷酸酶 10页

2024年人教版四年级数学下册期中试卷【带答案.. 7页

《打支山歌过横排》说课稿 9页

2023年全国高考数学(新高考1卷)真题试卷 4页

单片机寻迹小车模板 18页

第二轮复习:解三角形(公开课)(课堂ppt) 22页