


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验题目:Hanoi塔问题一、问题描述:假设有三个分别命名为A,B和C的塔座,在塔座B上插有n个直径大小各不相同、从小到大编号为1,2,n的圆盘。现要求将塔座B上的n个圆盘移至塔座A上并仍按同样顺序叠排,圆盘移动时必须遵守以下规则:(1)每次只能移动一个圆盘;(2)圆盘可以插在A,B和C中任一塔上;(3)任何时刻都不能将一个较大的圆盘压在较小的圆盘之上。要求:用程序模拟上述问题解决办法,并输出移动的总次数,圆盘的个数从键盘输入;并想办法计算出程序运行的时间。二、 算法思路:1、建立数学模型:这个问题可用递归法解决,并用数学归纳法又个别得出普遍解法:假设塔座B上有3个圆盘移动到塔座A上:(1)将塔座B上2个圆盘借助塔座A移动到塔座C上;(2)将塔座B上1个圆盘移动到塔座A上;(3)将塔座C上2个圆盘借助塔座B移动到塔座A上。其中第2步可以直接实现。第1步又可用递归方法分解为:1.1将塔座B上1个圆盘从塔座X移动到塔座A;1.2将塔座B上1个圆盘从塔座X移动到塔座C;1.3将塔座A上1个圆盘从塔座Z移动到塔座C。第3步可以分解为:3.1 将塔座C上1个圆盘从塔座Y移动到塔座B;3.2 将塔座C上1个圆盘从塔座Y移动到塔座A;3.3 将塔座B上1个圆盘从塔座X移动到塔座A。综上所述:可得到移动3个圆盘的步骤为B-A,B-C, A-C, B-A, C-B, C-A, B-A,2、算法设计:将n个圆盘由B依次移到A,C作为辅助塔座。当n=1时,可以直接完成。否则,将塔座B顶上的n-1个圆盘借助塔座A移动到塔座C上;然后将圆盘B上第n个圆盘移到塔座A上;最后将塔座C上的n-1个圆盘移到塔座A上,并用塔座B作为辅助塔座。三、原程序#include#include #include int times = 0;void move(char a, char b) printf(%c - %c n, a,b);void hno(int n,char a , char b, char c) if (n=1) move(a,c); times +; else hno(n-1,a,c,b); move(a,c); times +; hno(n-1,b,a,c); void main()unsigned start,finish; int N; printf(请输入汉诺塔的层数:); scanf(%d,&N); start=GetTickCount();/ hno(N,B,C,A); finish=GetTickCount(); float time=(finish-start)/1000.0; printf(共移动了%d次! n,times); cout总共需要时间为: timeendl;四:五结论分析通过对上述递归在 Hanoi 塔问题上的应用分析,可以得出如下结论: 递归应用中的Hanoi塔问题分析递归应用中的1、Hanoi 塔问题中函数调用时系统所做工作一个函数在运行期调用另一个函数时,在运行被调用函数之前,系统先完成3件事:将所有的实参、返回地址等信息传递给被调用函数保存。 为被调用函数的局部变量分配存储区;将控制转移到被调用函数的入口。从被调用函数返回调用函数前,系统也应完成3件事:保存被调用函数的结果;释放被调用函数的数据区;依照被调用函数保存的返回地址将控制转移到调用函数。当有多个函数构成嵌套调用时,按照“后调用先返回”的原则,上述函数之间的信息传递和控制转移必须通过“栈”来实现,即系统将整个程序运行时所需的数据空间安排在一个栈中,每当调用一个函数时,就为其在栈顶分配一个存储区,每当从一个函数退出时,就释放其存储区,因此当前运行函数的数据区必在栈顶。2、递归调用过程中,在程序执行之前无法知道控制这种调用栈的规模,因为这一规模取决于递归调用的次序。在这种情况下,程序的地址空间可能动态变化; 3、递归应用于程序设计时,结构清晰、程序易读,编制和调试程序很方便,不需要用户自行管理递归工作栈。但递归应用于计算机时需要占用大量系统资源(包括堆栈、软中断和存贮空间等),并消耗大量处理时间。因此,可以考
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025内蒙古呼伦贝尔农垦莫拐农牧场有限公司招聘16人笔试模拟及答案详解(各地真题)
- 教师招聘之《小学教师招聘》通关测试卷及完整答案详解【夺冠系列】
- 银行风控系统设计-洞察及研究
- 2025年文化、办公用设备或器具项目发展计划
- 咖啡拉花教学创新创业项目商业计划书
- 养殖水产品智能包装材料创新创业项目商业计划书
- 2025年教师招聘之《幼儿教师招聘》练习题库及答案详解(历年真题)
- 教师招聘之《幼儿教师招聘》检测卷讲解含答案详解(模拟题)
- 押题宝典教师招聘之《幼儿教师招聘》模考模拟试题附参考答案详解【轻巧夺冠】
- 2026届黑龙江省大庆市实验中学高三语文第一学期期末统考模拟试题
- GB/T 254-2022半精炼石蜡
- 校本课程篆刻教学设计
- GB/T 20967-2007无损检测目视检测总则
- GB/T 12220-2015工业阀门标志
- 当代世界经济与政治第二章课件
- PS考试试题及答案
- 新都区文化产业发展建议报告
- 时代邻里4度°服务美学品质关怀体系
- 养老机构行政值班查房记录表格
- EPC合同条件(银皮书)-1999
- 外研版五年级上册英语(全册)单元教材分析
评论
0/150
提交评论