人工智能二_野人过河问题_实验

人工智能二_野人过河问题_实验

ID:47370152

大小:81.50 KB

页数:10页

时间:2020-01-10

人工智能二_野人过河问题_实验_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《人工智能二_野人过河问题_实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。