算法设计与实验分析五:八皇后问题

时间:2024.3.31

算法设计与实验分析无五:八皇后问题

班级:网络1101姓名:齐岳川学号:1111610210日期:2013.5.21

一:实验名称:八皇后问题

二:实验内容:

在8×8格的国际象棋上摆放八皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。虽然问题的关键在于如何判定某个皇后所在的行、列、斜线是否有别的皇后;可以从矩阵的特点上找到规律,如果在同一行,则行号相同;如果在同一列上,则列号相同;如果同在“/”斜线上的行列值之和相同;如果在对角线上,则行列号之和或之差相等,逐个纪录符合题意的情况,最终得出解。

回溯法:

回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。

三:程序清单:

#include

#include

#include

#include

1

static char Queen[8][8];

static int a[8];

static int b[15];

static int c[15];

static int iQueenNum=0;

static int iNum=1;

void iQueen(int i);

void measure1()

{

int iLine;

int iColumn;

for(iLine=0;iLine<8;iLine++)

{

a[iLine]=0;

for(iColumn=0;iColumn<8;iColumn++)

Queen[iLine][iColumn]='*';

}

for(iLine=0;iLine<15;iLine++)

b[iLine]=c[iLine]=0;

iQueen(0);

};

void iQueen(int i)

{

int iColumn;

for(iColumn=0;iColumn<8;iColumn++)

{

if(a[iColumn]==0&&b[i-iColumn+7]==0&&c[i+iColumn]==0)

{

Queen[i][iColumn]='@';

a[iColumn]=1;

b[i-iColumn+7]=1;

c[i+iColumn]=1;

if(i<7)

iQueen(i+1);

else

{

int iLine;

int iColumn;

cout<<"(递归法)皇后摆放方式的第"<

for(iLine=0;iLine<8;iLine++)

{

for(iColumn=0;iColumn<8;iColumn++)

cout<

cout<

}

cout<

for(iLine=0;iLine<8;iLine++)

{

for(iColumn=0;iColumn<8;iColumn++)

{

if(Queen[iLine][iColumn]=='@')

cout<<"("<

}

}

cout<

system("pause>nul");

iNum++;

cout<

}

Queen[i][iColumn]='*';

a[iColumn]=0;

b[i-iColumn+7]=0;

c[i+iColumn]=0;

}

}

}

运行结果:


第二篇:实验五安全算法的设计




更多相关推荐:
算法设计与分析实验报告1

攀枝花学院实验报告实验名称算法设计与分析课程实验实验内容比较排序算法的效率实验日期20xx0326院系数学与计算机姓名吴永昊学号20xx10804043同组人指导老师银星成绩一目的与任务通过算法的程序实现和执行...

算法设计与分析实验报告

算法设计与分析课程报告课题名称算法设计与分析课题负责人名学号同组成员名单角色指导教师评阅成绩评阅意见提交报告时间20xx年6月12日第二章递归与分治策略23改写二分搜索算法1问题描述设a0n1是已排好序的数组请...

计算机算法与设计分析实验报告

计算机算法与设计分析实验报告班级姓名学号目录实验一分治与递归11基本递归算法12棋盘覆盖问题23二分搜索34实验小结5实验二动态规划算法51最长公共子序列问题52最大子段和问题73实验小结8实验三贪心算法81多...

算法设计与分析实验报告格式

算法设计与分析实验报告一实验名称统计数字问题评分实验日期年月日指导教师刘长松姓名刘飞初专业班级计算机0901学号10一实验要求1掌握算法的计算复杂性概念2掌握算法渐近复杂性的数学表述3掌握用C语言描述算法的方法...

算法设计与分析实验报告

算法分析与设计实验报告实验报告题目实验一递归与分治策略一实验目的1加深学生对分治法算法设计方法的基本思想基本步骤基本方法的理解与掌握2提高学生利用课堂所学知识解决实际问题的能力3提高学生综合应用所学知识解决实际...

算法设计与分析实验报告格式

算法设计与分析实验报告班级姓名学号20xx年11月18日目录实验一二分查找程序实现01页实验二棋盘覆盖问题04页实验三01背包问题的动态规划算法设计07页实验四背包问题的贪心算法10页指导教师对实验报告的评语成...

算法设计与分析试验报告

武汉理工大学学生实验报告书实验课程名称算法设计与分析开课学院计算机科学与技术学院指导老师姓名何九周学生姓名王鹏学生专业班级软件100420xx20xx学年第1学期实验课程名称算法设计与分析intmiddleif...

算法设计与分析实验报告

算法设计实验报告课程设计报告题目计算机算法基础实验报告课程名称专业班级学号姓名指导教师报告日期117算法设计实验报告计算机科学与技术学院目录一实验目的3二实验题目3三设计分析31生成最短路径问题设计分析32最优...

算法设计与分析 综合设计性实验报告

01背包问题的多种算法设计与分析一实验内容和要求01背包问题是一例典型的组合优化的NP完全问题问题可以描述为给定一组共n个物品每种物品都有自己的重量wii1n和价值vii1n在限定的总重量背包的容量C内如何选择...

算法设计与分析实验报告

算法设计与分析实专业班级学生姓名号验报告学一实验目的与要求1熟悉CC语言的集成开发环境2通过本实验加深对递归过程的理解二实验内容掌握递归算法的概念和基本思想分析并掌握整数划分问题的递归算法三实验题任意输入一个整...

算法设计与分析二分查找实验报告

课程设计说明书设计题目二分查找程序的实现专业班级设计人山东科技大学年月日课程设计任务书学院信息科学与工程学院专业班级姓名一课程设计题目二分查找程序的实现二课程设计主要参考资料1计算机算法设计与分析第三版王晓东著...

《算法设计与分析》分治法实验报告一

宁波工程学院电信学院计算机教研室实验报告课程名称算法设计与分析姓名梅胤实验项目实验一分治法班级计科094指导教师苏日娜学号29实验位置计算机中心二楼日期20xx1017一实验目的通过上机实验要求掌握分治法算法的...

算法设计与分析实验报告(40篇)