人工智能实验二-八皇后问题

人工智能实验二-八皇后问题

ID:38614079

大小:94.50 KB

页数:7页

时间:2019-06-16

人工智能实验二-八皇后问题_第1页
人工智能实验二-八皇后问题_第2页
人工智能实验二-八皇后问题_第3页
人工智能实验二-八皇后问题_第4页
人工智能实验二-八皇后问题_第5页
资源描述:

《人工智能实验二-八皇后问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、【实验名称】人工智能实验二:八皇后问题实验代码:#include#includeusingnamespacestd;intLineNum[9];//第i列的皇后要放的行位置(只用其中的列号1到8)boola[9];//a[i]为1表示第i行上尚未放皇后boolb[15];//b[i]为1表示第i条斜对角线上尚未放皇后(斜对角线指的是"/"状对角线,该对角线上各点的行列号之和i+j为一个常数)boolc[15];//c[i]为1表示第i条反斜对角线上尚未放皇后(反斜对角线指的是""状对角线,该对

2、角线上各点的行列号之差i-j为一个常数)。intcount=0;//计数器,用于计算方法总数classQueen{inti;//成员变量,列号public:Queen(intx)//构造函数{i=x;}voidsolve(int);//成员函数};voidQueen::solve(inti)//成员函数的实现{intj;for(j=1;j<9;j++)//遍历行{if(a[j]&&b[i+j-2]&&c[i-j+7])//用于判断并实现:如果在第j行的第i列上放置皇后安全的话,则将一枚皇后放置到那儿。{LineNum[i]=j;//记

3、录皇后位置a[j]=false;b[i+j-2]=false;c[i-j+7]=false;solve(i+1);//递归调用solvea[j]=true;b[i+j-2]=true;c[i-j+7]=true;}}if(i>8)//摆放皇后之后,若i=8即已放满时则递归出口;否则通过solve(i+1);进行递归调用。{count++;cout<<"第"<

4、secout<<"*";}cout<

5、ueen.solve(1);//第1列开始的连续8列上均放上皇后cout<<"一共有"<

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

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

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