欢迎来到天天文库
浏览记录
ID:47370152
大小:81.50 KB
页数:10页
时间:2020-01-10
《人工智能二_野人过河问题_实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.实验报告课程名称人工智能_____________实验项目野人过河问题_______________实验仪器电脑、visualC++_________系别计算机学院____________专业__计算机科学与技术_____班级/学号学生姓名___实验日期2010年月日_______成绩_______________________指导教师..一、实验目的理解并熟悉掌握深度优先搜索和广度优先搜索地方法。二、实验内容题目:设有3个传教士和3个野人来到河边,打算乘一只船从右岸到左岸去。该船的负载能力为两人。在任何时候,如果野人人数超过传教士人数,野人就会把传教士吃掉。他们怎样才能
2、用这条船安全的把所有人都渡过河去?三、代码和结果#include#include#include#definemaxloop100/*最大层数,对于不同的扩展方法自动调整取值*/#definepristnum3/*初始化时设定有3个野人3个传教士,实际可以改动*/#defineslavenum3structSPQ{intsr,pr;/*船运行一个来回后河右岸的野人、传教士的人数*/intsl,pl;/*船运行一个来回后河左岸的野人、传教士的人数*/intssr,spr;/*回来(由左向右时)船上的人数*/intsst,s
3、pt;/*去时(由右向左时)船上的人数*/intloop;/*本结点所在的层数*/structSPQ*upnode,*nextnode;/*本结点的父结点和同层的下一个结点的地址*/}spq;intloopnum;/*记录总的扩展次数*/intopenednum;/*记录已扩展节点个数*/intunopenednum;/*记录待扩展节点个数*/intresultnum;structSPQ*opened;structSPQ*oend;structSPQ*unopened;structSPQ*uend;structSPQ*result;voidinitiate();voidrel
4、easemem();voidshowresult();voidaddtoopened(structSPQ*ntx);intsearch();voidgoon();intstretch(structSPQ*ntx);voidrecorder();intmain()..{intflag;/*标记扩展是否成功*/for(;;){initiate();flag=search();if(flag==1){recorder();releasemem();showresult();goon();}else{printf("无法找到符合条件的解");releasemem();goon();}
5、}system("pause");return0;}voidinitiate(){intx;charchoice;uend=unopened=(structSPQ*)malloc(sizeof(spq));if(uend==NULL){printf("内存不够!");exit(0);}unopenednum=1;openednum=0;unopened->upnode=unopened;/*保存父结点的地址以成链表*/unopened->nextnode=unopened;unopened->sr=slavenum;unopened->pr=pristnum;unop
6、ened->sl=0;unopened->pl=0;unopened->sst=0;..unopened->spt=0;unopened->ssr=0;unopened->spr=0;unopened->loop=0;printf("题目:设有n个传教士和m个野人来到河边,打算乘一只船从右岸到左岸去。");printf("该船的负载能力为两人。在任何时候,如果野人人数超过传教士人数,野人");printf("就会把传教士吃掉。他们怎样才能用这条船安全的把所有人都渡过河去?");printf("默认的n、m值皆为3");for(;;){printf("是
7、否修改?(Y/N)");scanf("%s",&choice);choice=toupper(choice);if(choice=='Y'){printf("请输入传教士人数");for(;;){scanf("%d",&x);if(x>0){unopened->pr=x;break;}elseprintf("输入值应大于0!请重新输入");}printf("请输入野人人数");for(;;){scanf("%d",&x);if(x>0){unopened->sr=x;break;}els
此文档下载收益归作者所有