n皇后问题实验报告.doc

n皇后问题实验报告.doc

ID:50179004

大小:78.50 KB

页数:10页

时间:2020-03-06

n皇后问题实验报告.doc_第1页
n皇后问题实验报告.doc_第2页
n皇后问题实验报告.doc_第3页
n皇后问题实验报告.doc_第4页
n皇后问题实验报告.doc_第5页
资源描述:

《n皇后问题实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、N后问题算法一、实验目的及要求所要涉及或掌握的知识:1.      了解皇后相互攻击的条件:如果任意两个皇后在同一行,同一列或同一对角线,则她们相互攻击。2.      运用迭代的方法实现6皇后问题,求解得到皇后不相互攻击的一个解3.      在运用迭代的方法实现编程时,要注意回溯点二、问题描述及实验内容对6皇后问题求解,用数组c[1…6]来存皇后的位置。c[i]=j表示第i个皇后放在第j列。最后程序运行的结果是c[1…6]={1,5,8,6,3,7}三、问题分析和算法描述6-QUEENS的算法表示:输入:空。输出:对应于6皇后问题的解的向量c[1…6]={1,5,8,6,3,7}1.

2、      fork=1to62.      c[k]=0         //没有放皇后3.      endfor4.      flag=false5.      k=16.      whilek>=17.         whilec[k]<=58.               c[k]=c[k]+19.               ifc为合法着色 thensetflag=ture且从两个while循环退出10.            elseifc是部分解thenk=k+111.      endwhile12.   c[k]=0              //回溯并c[k

3、]=013.   k=k-114.   endwhile15.   ifflag thenoutputc16.   elseoutput“nosolution”四、具体实现#include#include#include#include#include"iostream"usingnamespacestd;inttotal=0;//方案计数voidbacktrace(intqueen[],intN){inti,j,k;cout<<"★为皇后放置位置";for(i=1;;){//首先安放第1行  if(queen[i

4、]

5、       for(intj=0;j

6、归1列   i--;//回溯到前一行皇后   if(i<0)   {//回溯到数组1行之前,结束    cout<<"针对"<>N;  int*queen=newint[N];  f

7、or(inti=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。