人工智能题目

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

人工智能上机题目

请从下面四道题中任意选择两道作为上机题目。

一、八数码问题

实验内容要求:

八数码难题:在3

3 的方格棋盘上,分别放置了标有数字1,2,3,

4,5,6,7,8 八张牌,初始状态为S0(可随机初始化),目标状态Sg如图所示,请使用学习到的搜索算法来实现上述问题。

二、传教土与野人问题

实验内容要求:

有三个传教士和三个野人过河,只有一条能装下两个人的船,在河的任何一方或者船上,如果野人的人数大于传教士的人数,那么传教士就会有危险,因此要避免这种情况出现。请应用最新的方法来表达传教士和野人问题,编写一个计算机程序,以求得安全度过全部6个人。

三、汉诺塔问题

实验内容要求:

古代有一个梵塔,塔内有三个座A,B,C,A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个和尚想把这64个盘子从A座移到B座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。在移动过程中可以利用B座,要求打印移动的步骤。

四、八皇后问题

八皇后问题是一个以国际象棋为背景的问题,如何能够在8

8 的

国际象棋盘上放置八个皇后,使得任何一个皇后都无法吃掉其他的皇后?即两个皇后只要不处于同一条线上(横线、纵线,斜线)即可。要求打印所有满足上述条件的状态

注:如果有兴趣可以尝试n皇后问题#include

int count;//全局变量记录总的八皇后解决个数

int main()

{

int queenrow[8]={0};//表示未取位置,结果将相应行数存入列数组

int queendiag[16]={1};//表各对角线

int queenback_diag[16]={1};//表各斜对角线

FindPos(1);

return 0;

}

void FindPos(int i)

{

for(int j=0;j<8;j++)

{

if(!queenrow[j]&&queendiag[i+j]&&queenback_diag[i-j+7])//可以置入的条件为不同行列及双向对角线

{

queenrow[i-1]=j+1;//从零到七取值注意

queendiag[i+j]=0;//该位置不可取

queenback_diag[i-j+7]=0;

if(i<8)

{

FindPos(i+1);

}

else

{

count++;

printf("第%d种解决方案:\n",count);

printf("1 2 3 4 5 6 7 8 ");

for(int z=0;z<8;z++)

{

printf("%d ",queenrow[z]);

}

}//无有效值点,递归返回

queenrow[i-1]=0;

queendiag[i+j]=1;

queenback_diag[i-7+1]=1;

}

}

}

相关文档
最新文档