您好,欢迎访问三七文档
人工智能上机题目请从下面四道题中任意选择两道作为上机题目。一、八数码问题实验内容要求:八数码难题:在33的方格棋盘上,分别放置了标有数字1,2,3,4,5,6,7,8八张牌,初始状态为S0(可随机初始化),目标状态Sg如图所示,请使用学习到的搜索算法来实现上述问题。二、传教土与野人问题实验内容要求:有三个传教士和三个野人过河,只有一条能装下两个人的船,在河的任何一方或者船上,如果野人的人数大于传教士的人数,那么传教士就会有危险,因此要避免这种情况出现。请应用最新的方法来表达传教士和野人问题,编写一个计算机程序,以求得安全度过全部6个人。三、汉诺塔问题实验内容要求:古代有一个梵塔,塔内有三个座A,B,C,A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个和尚想把这64个盘子从A座移到B座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。在移动过程中可以利用B座,要求打印移动的步骤。四、八皇后问题八皇后问题是一个以国际象棋为背景的问题,如何能够在88的国际象棋盘上放置八个皇后,使得任何一个皇后都无法吃掉其他的皇后?即两个皇后只要不处于同一条线上(横线、纵线,斜线)即可。要求打印所有满足上述条件的状态注:如果有兴趣可以尝试n皇后问题#includestdio.hintcount;//全局变量记录总的八皇后解决个数intmain(){intqueenrow[8]={0};//表示未取位置,结果将相应行数存入列数组intqueendiag[16]={1};//表各对角线intqueenback_diag[16]={1};//表各斜对角线FindPos(1);return0;}voidFindPos(inti){for(intj=0;j8;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(i8){FindPos(i+1);}else{count++;printf(第%d种解决方案:\n,count);printf(12345678);for(intz=0;z8;z++){printf(%d,queenrow[z]);}}//无有效值点,递归返回queenrow[i-1]=0;queendiag[i+j]=1;queenback_diag[i-7+1]=1;}}}
本文标题:人工智能题目
链接地址:https://www.777doc.com/doc-2704156 .html