版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计入门Python语言……函数……第4章应用问题选讲递归算法12汉诺塔(HanoiTower)问题汉诺塔(HanoiTower)问题例4-17:编写程序,用递归算法求解汉诺塔(HanoiTower)问题。汉诺塔问题源于印度的一个古老传说。在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘。游戏的目标是,把A杆上的金盘全部移到C杆上,并仍按原有顺序放置好。操作规则是,每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下、小盘在上,且在三根杆之间一次只能移动一个金盘,操作过程中盘子可以置于A、B、C任一杆上。应该如何操作?汉诺塔(HanoiTower)问题例4-17:编写程序,用递归算法求解汉诺塔(HanoiTower)问题。ABC
汉诺塔(HanoiTower)问题例4-17:编写程序,用递归算法求解汉诺塔(HanoiTower)问题。假如A杆上只有1个金盘,则只需移动1次,可将金盘移到C杆上,记为:A—>C;假如A杆上有2个金盘:
A—>B,A—>C,B—>C假如A杆上有3个金盘:最后,借助A杆,再将B杆上的2个金盘移到C杆借助C杆,先将A杆上最上面的2个金盘移到B杆上;再将A杆上最后一个金盘移到C杆上;汉诺塔(HanoiTower)问题例4-17:编写程序,用递归算法求解汉诺塔(HanoiTower)问题。假如A杆上只有1个金盘,则只需移动1次,可将金盘移到C杆上,记为:A—>C;假如A杆上有2个金盘:
A—>B,A—>C,B—>C假如A杆上有n个金盘最后,借助A杆,再将B杆上的n-1个金盘移到C杆借助C杆,先将最上面的n-1个金盘移到B杆上;再将A杆上的最后一个金盘移到C杆上;汉诺塔(HanoiTower)问题例4-17:编写程序,用递归算法求解汉诺塔(HanoiTower)问题。表示:将A杆上的n个金盘,借助B杆,移到C杆构建递归函数:hanoi(n,a,b,c)def
hanoi(n,a,b,c):
ifn==1:
print("{}—>{}".format(a,c))
#将一个金盘由a移到c
else:
hanoi(n-1,a,c,b)
#借助c将n-1个金盘由a移到b
print("{}—>{}".format(a,c))#将一个金盘由a移到c
hanoi(n-1,b,a,c)
#借助a将n-1个金盘由b移到cn=int(input("请输入金盘的个数n="))print("金盘的移动顺序为:")hanoi(n,‘A’,‘B’,‘C’)
#调用函数完成求解
汉诺塔(HanoiTower)问题例4-17:编写程序,用递归算法求解汉诺塔(HanoiTower)问题。构建递归函数:hanoi(n,a,b,c)表示:将A杆上的n个金盘,借助B杆,移到C杆汉诺塔(HanoiTower)问题例4-17:编写程序,用递归算法求解汉诺塔(HanoiTower)问题。构建递归函数:hanoi(n,a,b,c)表示:将A杆上的n个金盘,借助B杆,移到C杆汉诺塔(HanoiTower)问题例4-17:编写程序,用递归算法求解汉诺塔(HanoiTower)问题。构建递归函数:hanoi(n,a,b,c)表示:将A杆上的n个金盘,借助B杆,移到C杆汉诺塔(HanoiTower)问题例4-17:编写程序,用递归算法求解汉诺塔(HanoiTower)问题。汉诺塔(HanoiTower)问题例4-17:编写程序,用递归算法求解汉诺塔(HanoiTower)问题。1个金盘,移动1次:A—>C2个金盘,移动3次:A—>B,A—>C,B—>C3个金盘,移动7次:(A—>C,A—>B,C—>B)
A—>C,(B—>A,B—>C,A—>C)4个金盘,移动15次;n个金盘,移动2n–1次;64个金盘,移动264–1=18446744073709551615次;假设每秒移动一次,一年是31536000秒,则一刻不停地移动完64个金盘,需要584942417355年;即使借助于计算机,假设计算机每秒能够移动1亿次,也需要大概5849年才能够完成。汉诺塔(HanoiTower)问题例4-17:编写程序,用递归算法求解汉诺塔(HanoiTower)问题。1个金盘,移动1次:A—>C2个金盘,移动3次:A—>B,A—>C,B—>C3个金盘,移动7次:(A—>C,A—>B,C—>B)
A—>C,(B—>A,B—>C,A—>C)4个金盘,移动15次;n个金盘,移动2n–1次;64个金盘,移动264
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CSES 198-2025 T/CHTS 10234-2025钢渣细集料稳定黄土路床应用技术规范
- T/UNP 84-2024建筑工程管理BIM技术应用规范
- T/GSJX 5-2024北方黄酒
- T/CI 935-2025智慧轨道交通技术人才评价
- T/CAHPE 001-2024健康县区评价
- T/CSAE 354-2024 T/CHTS 10144-2024车路协同 智能路侧决策系统 数据接口规范
- AI在约鲁巴语中的应用
- 广东省湛江地区六校联考2027届数学八上期末学业质量监测试题含解析
- 2026学年安徽省芜湖市四年级数学期末深度自测快速提分卷(附答案)详细答案和解析
- 2025-2026学年江西省宜春市初中数学九年级期末上册高分通关经典测试题(附答案)
- 萍乡市投发集团2026年度下半年高层次及急需紧缺人才招聘笔试模拟试题及答案解析
- 八年级网络安全与手机管理活动方案课件
- 军官转业申请书
- (正式版)DB4403∕T 481-2024 《电动自行车充换电柜消防安全要求》
- 2026年公路检测工程师《水运材料》模拟试题及答案
- 卡通风可爱宝宝生日周岁宴请模板
- 2026中国光纤在医疗领域的创新应用与市场前景报告
- QJLDH0122025氟化钠(电子级)
- 外研版高二英语上册(必修第三册)全册重点单词、短语、句型归纳
- ESG可持续发展治理体系
- 2.2.1+烯烃+说课课件-2025-2026学年高二下学期化学人教版必修3
评论
0/150
提交评论