【离散数学中的数据结构与算法】十 汉诺塔

汉诺塔也是经典的算法问题

文章目录

    • 1 汉诺塔问题

1 汉诺塔问题

法国数学家卢卡斯(Edouard Lucas)在1883年提出了一个数学游戏:

  • 传说在世界中心贝拿勒斯(印度北部)的圣庙里,一块黄铜板上有三根宝石柱。印度教的主神大梵天在创造世界的时候,在其中一根柱上从下到上地穿好了由大到小的64片金盘。大梵天命令僧侣们将圆盘从下面开始按大小顺序重新摆放在另一根柱子上,并且规定, 在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。预言说当这些盘子移动完毕时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。

在这里插入图片描述

考虑该问题的一般形式:有 n 个圆盘,最初自下而上、自大而小地穿在A柱上, 每次按规则(上述)移动一个圆盘,最终将所有圆盘移动到C柱上。

假如现在有如下图的盘子:

在这里插入图片描述

则一共需要移动7次。自己手动画画就知道了。

那么现在盘子有n个,如下图:

在这里插入图片描述
该如何移动?实际上这是递归的问题(递归在后面的学习中会学到)

  • 先将A柱上所有其他盘子移到B柱上(这是一个类似于自己的子问题),只留下最下面的盘子,也就是n盘子
  • 接着将最大的盘子从A柱移到C柱,之后不必再管它。
  • 最后再将刚才移到B柱上的盘子移到C柱上(这又是一个子问题) 。

用 T(n) 表示移动 n 个圆盘所需要的步数

根据算法

  1. 先把前面 n-1 个盘子转移到B上;
  2. 然后把第 n 个盘子转到C上(n这个盘子移动了一次);
  3. 最后再次将B上的 n-1 个盘子转移到C上(这n-1个盘子移动了两次)
  • 得到递推关系 T(n)=2T(n-1)+1

这个公式,足以使用递归的形式写出代码。下面还可以直接求出具体的值:

使用倒推法求解T(n)=2T(n-1)+1, T(1)=1:

在这里插入图片描述

回到最初的汉诺塔问题, 要将64片金盘重新摆放在另一根柱子上, 最少需要 264-1 步, 即使僧侣每秒钟移动一步而且每次移动都是正确的方法, 那么也需要 5.8*1011 年, 即5千多亿年!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422746.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【离散数学中的数据结构与算法】十一 错排问题

错排问题比较难,但是也是经典算法问题 文章目录1 错排问题2 总结1 错排问题 家中阳台有10盆不同的花,为保持新鲜感,希望每天重新摆放,使得每盆花都不在第一天放的位置。那么最多可以保持多少天每天摆法都不同? 这是一…

数据结构与算法实战-C++实现

学习交流加(可免费帮忙下载CSDN资源):个人微信: liu1126137994学习交流资源分享qq群1(已满): 962535112学习交流资源分享qq群2: 780902027 推荐一个数据结构实战课程,学习…

ie6 7下 relative absolute无法冲破的等级问题解决办法

最近做垂直市场遇见这样一个问题,在标准浏览器下如图一,所有地区列表正常显示,以下拉形式浮在最上层,可是在IE6、7下如图二就会被下面的图片所遮盖,z-index设置多大都不起作用。图一 (标准浏览器 和 IE8&am…

使用说明 思迅收银系统_使用自助收银系统让消费者自助结算更便捷高效?

很多超市的人工收银台,在客流的高峰期,如节假日、活动促销时间段、周末等,结账慢且客流量大,容易出现顾客排长队等待结账的情况。这样会有结账慢、收银员收银压力大的影响,进而影响顾客的购物体验。在超市使用自助收银…

【Linux进程、线程、任务调度】四多核下负载均衡 中断负载均衡,RPS软中断负载均衡 cgroups与CPU资源分群分配 Linux为什么不是硬实时 preempt-rt对Linux实时性的改造

学习交流加 个人qq: 1126137994个人微信: liu1126137994学习交流资源分享qq群: 962535112 上一篇文章(点击链接:点击链接阅读上一篇文章)讲了: CPU/IO消耗型进程吞吐率 vs. 响应SCHED_FIFO算法…

主机关机后第二天就无法开机_iphone没电自动关机后无法充电和开机的解决办法!(亲身经历)...

问题记录时间: 2020年5月21日地点: 北京市朝阳区XXX写字楼​ 今天下午工作太忙,突然发现我的iphone8(ios13)还剩下1%的电量,赶紧去找充电器,没找到!抓紧借!回来的时候为时已晚,我的小8已经电量耗尽关机了.插上源电尝试开机,我心里想着千万不要出问题,结果还是怕什么来什么,手机…

推荐学习-Linux性能优化实战

学习交流加(可免费帮忙下载CSDN资源):个人微信: liu1126137994学习交流资源分享qq群1(已满): 962535112学习交流资源分享qq群2: 780902027 推荐一个学习资源:Linux性能优…

创业冲突的五种解决方法是_失眠原因不同,中医五种调理方法解决问题!

请点击上面 免费关注...中国健康养生堂,关注国人健康,每天与你分享健康资讯、保健常识、心理健康、中医养生、健康饮食、养生食疗、健康知识、生活常识、两性健康,远离亚健康,健康是一种心态!懂点健康养生,…

C++从入门到进阶近100本书推荐电子书pdf

学习交流加(可免费帮忙下载CSDN资源): 个人微信: liu1126137994 学习交流资源分享qq群1(已满): 962535112 学习交流资源分享qq群2(已满): 780902027 学习…

HTML5学习笔记

HTML5可以做的事情 1. 制作时尚的表单 2. 构建实用的HTML5框架 3. 开发丰富多彩的游戏 4. 以更直观的方式让数据可视化呈现 5. HTML5的未来 – 惊艳的HTML5示例和实验 HTML的新特点 新特性 HTML5 中的一些有趣的新特性: 用于绘画的 canvas 元素 用于媒介回放的 v…

特别慢_这款“爱豆”很特别,它带你重温旧时光,体验慢生活的时代

说到浪漫之都的法国巴黎,就不得不让人想到卢浮宫、凡尔赛宫、凯旋门等古老建筑,当然还有让全世界震惊的埃菲尔铁塔,这些名胜古迹无一不让法国人民感到骄傲。如果问及法国巴黎有着华人家乡味道的,就不得不说到一间不起眼的老式港式…

MarkDown编辑器中数学公式与符号-LaTeX 各种数学命令,符号

函数、符号及特殊字符 声调 语法效果语法效果语法效果\bar{x}\acute{\eta}\check{\alpha}\grave{\eta}\breve{a}\ddot{y}\dot{x}\hat{\alpha}\tilde{\iota}函数 语法效果语法效果语法效果\sin\theta\cos\theta\tan\theta\arcsin\frac{L}{r}\arccos\frac{T}{r}\arctan\frac{L}{T…

spark中dataframe解析_Spark-SQL

fe缺点不方便添加新的优化策略线程安全问题Spark SQL支持三种语言javaScalapythonDataFrame大规模数据化结构能历、提高了运算能力从sql到dataFrame的转化,支持sql查询RDD是分布式的java对象的集合,对象颞部结构不可知dataframe以rdd为基础的分布式数据集…

【算法设计与分析】01 算法涉及的研究内容概述

文章目录1 算法的研究内容2 算法设计的两个例子2.1 调度问题2.2 算法设计的步骤2.3 投资问题3 总结在学习算法涉及与分析的内容之前,先了解一下算法所涉及的几个大块的内容,方便以后学习。1 算法的研究内容 算法的研究内容主要包括三点: 计…

CSDN博客图片水印|自定义水印|去除水印

参考博文1:https://blog.csdn.net/stereohomology/article/details/54561782 参考博文2:https://blog.csdn.net/u011479200/article/details/81026798 CSDN改版后,原来的修改方法不行了~~ 在 CSDN 中,上传图片时,会默…

【算法设计与分析】02 货郎问题与计算复杂性理论

什么是NP系列问题?今天来看看这些问题。 文章目录1 货郎问题2 0-1背包问题3 什么是NP-hard问题(NP难问题)1 货郎问题 问题:有n个城市,已知任何两个城市之间的距离,求一条每个城市恰好经过1次的回路&#xf…

ad17编辑界面怎么检查未连线_软件账务处理流程之——凭证审核与检查

金蝶是我们财务人非常熟悉的财务软件,但是我们很多财务人只在应用软件的时候还是会出现很多的问题,为了帮助大家更好地应用这个软件,今天就来和大家讲讲关于金蝶软件凭证审核与检查的一些基本处理流程。凭证审核凭证输入完成后,更…

快速可扩展的Ajax流代理——提供持续下载跨域数据

简介 由于浏览器禁止跨域的XMLHTTP调用,所有的Ajax网站都必须有一个服务端代理来从外部域比如Flickr或者Digg来抓去内容。对客户端Javascript代码来说,一个XMLHttp的调用将请求传递给宿主在相同域里的服务端代理,然后由代理来从外部服务器上下…

Markdown编辑器 公式指导手册

#Cmd Markdown 公式指导手册 标签: Tutorial 2018-03-20 补档: 收到很多小伙伴对本文的源文档转载需求,故传了一份 md 文件,请按需 下载 。 本文固定链接: https://www.zybuluo.com/codeep/note/163962 点击跳转至 Cmd Markdown …