- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
徐秀峰,宽度优先n皇后实验报告概要1
本科实验报告课程名称: 人工智能 实验项目:实验地点:实验室110 专业班级:学号学生姓名:指导教师:2016年 4月 24日太原理工大学学生实验报告学院名称计算机科学与技术专业班级计Z1303学号2013002007学生姓名宋纯显实验日成绩课程名称人工智能实验题目宽度优先n皇后一、实验目的和要求熟悉和掌握宽度优先有哪些信誉好的足球投注网站的定义和算法过程,并利用宽度优先算法求解n皇后问题,理解求解流程和有哪些信誉好的足球投注网站顺序。理解n皇后问题,并且用宽度优先算法求解。二、实验内容和原理用基于宽度优先有哪些信誉好的足球投注网站的方法求解n皇后问题。N皇后:在n×n格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。宽度优先算法:宽度优先算法从一般的图有哪些信誉好的足球投注网站算法演变而来。在宽度优先算法中,每次选择深度最浅的结点优先拓展。将拓展的结点放在open表的最前边。三、主要仪器设备计算机,实验操作环境(jdk,eclipse),四、操作方法与实验步骤先熟悉宽度优先算法的基本概念;熟悉n皇后问题的概念;用编程语言编程实现实验内容;java环境下的实验代码如下:代码:package AI2;import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;public class AI2 {/** * @param args */static QueueQueen open = new LinkedListQueen();static QueueQueen closed = new LinkedListQueen();static int a;public static void main(String[] args) {// TODO Auto-generated method stubint w = 0;System.out.println(请输入n);Scanner sc = new Scanner(System.in);a = sc.nextInt();Queen q1;q1 = new Queen(0, null);open.offer(q1);System.out.println(结果为:);while (!open.isEmpty()) {Queen n = open.poll();//closed.offer(n);if (n.deep==a) {//System.out.println(pk);for (int i = 0; i n.deep; i++) {System.out.print(n.path[i]);System.out.print(,);}System.out.println();System.out.println(------------------);w++;}else{expand(n);}}System.out.println(w);}static void expand(Queen q) {for (int i = 0; i a; i++) {Queen queen = new Queen(q.deep + 1, q.path);queen.setnext(i);if (check(queen)) {open.offer(queen);}}}static boolean check(Queen q) {for (int i = 0; i q.deep - 1; i++) {if ((q.path[i] == q.path[q.deep-1]) ||(Math.abs(i-q.deep+1) == Math.abs(q.path[i] - q.path[q.deep-1]))) {return false;}}return true;}}class Queen {int path[];int deep;Queen(int deep, int path[]) {this.deep = deep;if (this.deep == 0) {this.path = new int[1];} else {this.path=new int[deep];for (int i = 0; i deep - 1; i++) {this.path[i] = path[i];}}}void setnext(int i) {this.path[this.deep - 1] = i;}}五:实验结果与分析4皇后8皇后本程序理论上可以达到n皇后 (n为大于等于4的任意自然数),但是实际上由于电脑性能的现在 ,在11皇后的时候会发现很明显的延迟,12皇后
文档评论(0)