加载中 ...![]()
[啤酒花股票]递归和分治思想3
递归和分治思维3:汉诺塔
让编程改动国际
Change the world by program
汉诺塔
一位法国数学家曾编写过一个印度的陈旧传说:在国际中心贝拿勒斯的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在发明国际的时分,在其中一根针上从下到上地穿好了由大到小的64片金片,这便是所谓的汉诺塔。
不论白天黑夜,总有一个僧侣在按照下面的规律移动这些金片:一次只移动一片,不论在哪根针上,小片必须在大片上面。
僧侣们预言,当一切的金片都从梵天穿好的那根针上移到别的一根针上时,国际就将在一声响雷中消除,而梵塔、古刹和众生也都将玉石俱焚。
汉诺塔
这其实也是一个经典的递归问题。
咱们能够做这样的考虑:
先将前63个盘子移动到Y上,保证大盘在小盘下。
再将最底下的第64个盘子移动到Z上。
最终将Y上的63个盘子移动到Z上。
这姿态看上去问题就简略一点了,可是关键在于第1步和第3步应该怎么履行呢?
咱们先一起来体会一下这个游戏:汉诺塔游戏.swf
在游戏中,咱们发现因为每次只能移动一个圆盘,所以在移动的过程中明显要凭借别的一根针才行。
也便是说第1步将1~63个盘子凭借Z移到Y上,第3步将Y针上的63个盘子凭借X移到Z针上。那么咱们把一切新的思路集合为以下两个问题:
问题一:将X上的63个盘子凭借Z移到Y上;
问题二:将Y上的63个盘子凭借X移到Z上。
处理上述两个问题仍然用相同的办法:
问题一的圆盘移动过程为:
先将前62个盘子移动到Z上,保证大盘在小盘下。
再将最底下的第63个盘子移动到Y上。
最终将Z上的62个盘子移动到Y上。
问题二的圆盘移动过程为:
先将前62个盘子移动到X上,保证大盘在小盘下。
再将最底下的第63个盘子移动到Z上。
最终将X上的62个盘子移动到Y上。
那咱们是不是发现了什么?
接下来的试验和说明请观看视频……
视频下载
备用视频下载
技能, IT技能, 数据结构和算法, 盘子
技能, IT技能, 数据结构和算法, 盘子
“走马消息,分享精选全球有价值的财经新闻”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与
我们联系删除或处理,客服邮箱,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。