ImageVerifierCode 换一换
格式:DOC , 页数:15 ,大小:102KB ,
资源ID:1617878      下载积分:8 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/1617878.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(人工智能(梵塔问题)上课讲义.doc)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

人工智能(梵塔问题)上课讲义.doc

1、人工智能(梵塔问题)学习好资料梵塔问题实验报告实验目的1. 熟悉和掌握问题规约法的原理、实质和规约过程2. 理解规约图的表示方法3. 熟悉并掌握递归解决问题的思想实验原理1. 利用问题规约法的原理进行问题的分析与描述2. 利用递归思想进行问题的解决实验条件1. Window NT/xp/7及以上的操作系统2. 内存在512M以上3. CPU在奔腾II以上实验内容梵塔问题源于印度古老的一个传说。相传开天辟地的神勃拉玛创造世界时在印度北部的佛教圣地的圣庙里,安放了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到

2、另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。值班僧侣按照法则日夜不停地搬运,当搬运完成时世界将在一声霹雳中毁灭。实验分析我们假设把该任务交给一个僧人,为了方便叙述,将他编号为64。僧人自然会这样想:假如有另外一个僧人能有办法将63个盘子从一个座移到另一个座,那么问题就解决了,此时僧人64只需这样做:1. 命令僧人63将63个盘子从A座移到C座2. 自己将最底下的最大的一个盘子从A座移到C座3. 再命令僧人63将63个盘子从B座移到C座为了解决将63个盘子从A座移到B座的问题,僧人63又想:如果能再有一个僧人62能将62个盘子移动到另一座,我就能将63

3、个盘子从A座移动到B座。他是这样做的:1. 命令僧人62将62个盘子从A移动到C2. 自己将一个盘子从A座移动到B座3. 再命令僧人62将62个盘子移到B座再进行一次递归。如此“层层下放”,直到后来找到第2个僧人,让他完成将2个盘子从一个座移到另一个座,进行到此,问题就解决了。最后找到第1个僧人,让他完成将一个盘子从一个座移动到另一个座,至此,全部工作已经完成,该烦他问题得到解决。实验步骤 主程序流程图初始化过程绘制初始图形汉诺塔求解开始输入盘子数结束主程序流程图 梵塔求解流程图开始将盘子从A座移到C座n为1?是否递归调用,初始n=n-1盘子数为n结束梵塔问题递归过程流程图退出一级调用n=n+

4、1程序代码#include #include #include #include #include #define PAOGAO 190 /*动画抛高,数值越小越高*/#define PANHOU 10/*#define PANAMOUNT 19盘子数*/ int PANAMOUNT;typedef int pans;typedef struct s_pillar int amount; int x,y; pans pan20; /*存放每个盘的代号*/pillars;pillars pillar4; /*三个台柱*/int movecount=0; /*移动计数*/void drawpill

5、ar(pillars p);void init(); /*初始化函数*/void drawmat(char *mat,int matsize,int x,int y,int color); /* 点陈汉字 */void drawpan(pans p,int x,int y);void zimu(); /*显示字幕*/void drawpps(); /*画装盘的台柱*/void hanoi(); /*主算法*/void hanoi(int n,char one,char two,char three);void sdelay(int delay_t); /*函数申明*/void finish()

6、; /*完成!*/void main(void) /*主函数*/ printf(ntplease input n(n=19): );/*输入要演示的盘子数*/ scanf(%d,&PANAMOUNT); if(PANAMOUNT19) /*越界的话n当19处理*/ PANAMOUNT=19 ; init(); drawpps(); hanoi(PANAMOUNT,a,b,c); finish();void init() /* 初始化函数 */ int gd=DETECT,gm ; int i,n,color ; clrscr(); initgraph(&gd,&gm,c:tc); cleard

7、evice(); pillar1.amount = PANAMOUNT; pillar1.x = 105; pillar1.y = 405; for(i=1;i=pillar1.amount;i+) pillar1.pani=pillar1.amount-i+1; pillar2.amount = 0; pillar2.x = 320; pillar2.y = 405; pillar3.amount = 0; pillar3.x = 527; pillar3.y = 405; setcolor(YELLOW); /*柱座标记*/ settextstyle(0,0,2); outtextxy(1

8、05,418,A); outtextxy(320,418,B); outtextxy(527,418,C); setcolor(YELLOW); /*画框*/ setlinestyle(SOLID_LINE,0,NORM_WIDTH); line(0,0,0,479); line(0,0,639,0); line(639,0,639,479); line(0,479,639,479); line(0,PAOGAO-PANHOU-40,450,PAOGAO-PANHOU-40); /*黄金线*/ settextstyle(0,0,1); outtextxy(250,PAOGAO-PANHOU-5

9、0,Press ANY Key to EXIT !); /*线上字*/ zimu();void drawpillar(pillars p) /*画柱*/ int x,y,mount; x=p.x; y=p.y; mount=p.amount; setfillstyle(SOLID_FILL,BROWN); bar(x,(y-mount*PANHOU-20),x+5,y); bar(x-45,y,x+55,y+5);void drawmat(char *mat,int matsize,int x,int y,int color)/*依次:字模指针、点阵大小、起始坐标(x,y)、颜色*/int i

10、,j,k,n; n=(matsize-1)/8+1; for(j=0;jmatsize;j+) for(i=0;in;i+) for(k=0;kk) /*测试为1的位则显示*/ putpixel(x+i*8+k,y+j,color);void drawpan(pans p,int x,int y) setfillstyle(SOLID_FILL,LIGHTGRAY); bar(x-(5+5*p),y-PANHOU+1,x+(5+5*p),y); setlinestyle(SOLID_LINE,0,NORM_WIDTH); setcolor(BLACK); line(x-(5+5*p),y,x+

11、(5+5*p),y); line(x-(5+5*p),y+1,x+(5+5*p),y+1);void clearpan(pans p,int x,int y) setfillstyle(SOLID_FILL,BLACK); bar(x-(5+5*p),y-PANHOU,x+(5+5*p),y);void drawpps() /*画装盘的台柱*/ pillars p; int i,j; int x,y,mount; for(i=1;i=3;i+) p = pillari; x = p.x; y = p.y; mount = p.amount; drawpillar(p); /*画台柱*/ for

12、(j=1; j=15) clearprocess();/*清除步骤提示*/ movecount = movecount%15+1; /*模20+1*/ setcolor(RED); /*输出移动过程*/ settextstyle(TRIPLEX_FONT, HORIZ_DIR, 1); outtextxy(560,30+movecount*10,a); outtextxy(580,30+movecount*10,-); outtextxy(620,30+movecount*10,b); setfillstyle(SOLID_FILL,BLACK);/*涂黑_重画*/ bar(3,pillar1

13、.y-PANHOU*19-20,584,412); drawpps(); /*重画*/ action(data,pillarifrom,pillarito);/*此处添加动画函数*/ pillarito.amount+; /*入栈*/ mountt = pillarito.amount;/*刷新数量*/ pillarito.panmountt = data; drawpps(); /*重画*/void clearprocess() int i; setfillstyle(SOLID_FILL,BLACK); for(i=0;i=16;i+) bar(545,30+i*10,638,40+i*1

14、0); sdelay(1); /*动画延迟n个(1/18.2)秒*/ 整数1代表(1/18.2)秒 */void sdelay(int delay_t) clock_t start_time ; start_time=clock(); while(clock()-start_time)delay_t) ; /*循环空语句*/void action(pans pan,pillars fromp,pillars top) /*移动动画*/ float x1,y1,x2,y2; float p,q,a; int x,y,temp; /*整形变量用与当前帧*/ x1 = (float)(fromp.x

15、); y1 = (float)(fromp.y - fromp.amount*PANHOU -20); /*PANHOU为盘厚常数,减20处理,以便避开柱子*/ x2 = (float)(top.x); y2 = (float)(top.y - top.amount*PANHOU); q = -sqrt(y1-PAOGAO)/(y2-PAOGAO); /*此处注意产生增根*/ if(1-q) /*除数不为0*/ a = (x1 - x2*q)/(1-q); else a = (x1+x2)/2.0; p = (y2-PAOGAO)/(x2-a)/(x2-a);/*除以平方*/ if(x1 =

16、x2) for(x=floor(x1+0.5); xfloor(x2+0.5); x=x- 7 ) if(kbhit() exit(); /*用户按ESC则退出*/ y = floor(p*(x-a)*(x-a)+PAOGAO)+0.5); drawpan(pan,x,y); sdelay(1); clearpan(pan,x,y);/*清除轨迹*/ void finish() /*完成!*/ getch(); closegraph();程序运行效果图个人实验小结通过本次实验,我学会了熟悉并掌握问题规约法的原理、实质和规约过程,理解了规约图的表示方法,熟悉并掌握递归解决问题的思想。使我的软件编程思维能力得到了很大的提升,使我的自身能力有了长足的进步。精品资料

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服