1、算法设计技巧与分析论文题目:回溯法解决 N 后问题实验报告院 系:计算机与通信工程学院班 级:计算机科学与技术 08-1 班姓 名:*学 号:20080701*- 1 -回溯法解决 N 后问题实验名称 随机与回溯结合解决八皇后问题课程名称 算法分析与设计姓名 * 专业班级学号 计算机 08-1 班20080701*日期 2011.06.15 地点 西一楼 207成绩 教师 *,*1、实验目的1.掌握回溯法的设计思想。2.设计回溯算法完成 N 后问题求解。 3.考察回溯法求解问题的有效程度。2、实验要求1.输入皇后个数 N。2.用回溯法解决 N 后问题的所有解,并表示出来。3.输出解决 N 后问
2、题所需时间。3、实验内容(1)为解决这个问题,我们把棋盘的横坐标定为 i,纵坐标定为 j,i 和j 的取值范围是从到。当某个皇后占了位置(i,j) 时,在这个位置的垂直方向、水平方向和斜线方向都不能再放其它皇后了。(2)为第 i 个皇后选择位置的算法如下:for(j=1;j#include #include #include class Queenfriend int nQueen(int);private:bool Place(int k);void Backtrack(int t);void Output();int n,/皇后个数*x;/当前解long sum;/当前已找到的可行性方案数;bool Queen:Place(int k)for (int j=1;jn)sum+;Output();elsefor (int i=1;in-1) coutn;int iStart,iEnd;iStart = GetTickCount();/得到系统时间- 10 -nQueen(n);iEnd = GetTickCount();/得到系统时间coutnul“);