八皇后问题求解实验报告

上传人:第*** 文档编号:32827278 上传时间:2018-02-12 格式:DOCX 页数:6 大小:147.98KB
返回 下载 相关 举报
八皇后问题求解实验报告_第1页
第1页 / 共6页
八皇后问题求解实验报告_第2页
第2页 / 共6页
八皇后问题求解实验报告_第3页
第3页 / 共6页
八皇后问题求解实验报告_第4页
第4页 / 共6页
八皇后问题求解实验报告_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《八皇后问题求解实验报告》由会员分享,可在线阅读,更多相关《八皇后问题求解实验报告(6页珍藏版)》请在金锄头文库上搜索。

1、八皇后问题求解(1 )实验目的1.熟悉人工智能系统中的问题求解过程;2.熟悉对八皇后问题的建模,求解及编程语言的应用。(二)实验内容八皇后问题是 19 世纪著名的数学家高斯于 1850 年提出的。他的问题是:在 8*8 的棋盘上放置 8 个皇后,使其不能相互攻击,即任意两个皇后都不能处于同一行,同一列,同一斜线上。请设计算法打印出所有可能的摆放位置。(3)实验代码#include stdafx.h#include#includeusing namespace std;#define N 10class Queenpublic:Queen() num = -1; void Print(int n

2、);/输出皇后的排列,打出的数字为每个皇后的坐标int Check(int i, int k);/判断位置是否符合要求void Queens(int k, int n);/递归调用int count();/计数private:int qN;int num;void main()Queen Q;int n;cout 0): n;if (n0)cout n)/如果达到里要求的数量输出皇后排列Print(n);count();else /否则在适当的位置添加一个新皇后for (i = 1; i = n; i+)if (Check(i, k) /判断该行中该位置放置皇后是否符合要求qk = i; /记录改行中该点的位置Queens(k + 1, n); /放置下一行的皇后void Queen:Print(int n)int i;for (i = 1; i = n; i+)cout ( i , qi );cout endl;int Queen:Check(int i, int k)int j;j = 1;while (jk)if (qj = i) | abs(qj - i) = abs(j - k) /判断列,判断斜线return 0; /不符合返回 0j+;return 1; /符合返回int Queen:count()num+;return num;(4)实验结果截图

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号