位置: 编程技术 - 正文

[置顶] 汉诺塔的原理剖析以及递归的解决办法

编辑:rootadmin

推荐整理分享[置顶] 汉诺塔的原理剖析以及递归的解决办法,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

汉诺塔:源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

如果移动一个圆盘需要1秒钟的话,等到个圆盘全部重新落在一起,宇宙被毁灭是什么时候呢?

让我们来考虑一下个圆盘重新摞好需要移动多少次吧。1个的时候当然是1次,2个的时候是3次,3个的时候就用了7次......这实在是太累了

因此让我们逻辑性的思考一下吧。

3个的时候能够移动最大的3盘时如图所示。

到此为止用了7次。

接下来如右图,在上面再放上3个圆盘时还要用7次(把3个圆盘重新放在一起需要的次数)。[2]

因此,4个的时候是

“3个圆盘重新摞在一起的次数”&#;1次&#;“3个圆盘重新摞在一起需要的次数”

=2x“3个圆盘重新摞在一起的次数”&#;1次

=次。

那么,n个的时候是

[置顶]
        汉诺塔的原理剖析以及递归的解决办法

2x“(n-1)个圆盘重新摞在一起的次数”&#;1次。

由于1个的时候是1次,结果n个的时候为(2的n次方减1)次。

1个圆盘的时候2的1次方减1

2个圆盘的时候2的2次方减1

3个圆盘的时候2的3次方减1

4个圆盘的时候2的4次方减1

5个圆盘的时候2的5次方减1

........

n个圆盘的时候2的n次方减1

也就是说,n=的时候是(2的次方减1)次。

因此,如果移动一个圆盘需要1秒的话,

宇宙的寿命=2的次方减1(秒)

2的次方减1到底有多大呢?动动计算器,答案是一个二十位的数字约是

1.*^

用一年=秒x分x小时x天来算的话,大约有亿年吧。

太阳及其行星形成于亿年前,其寿命约为亿年。

由此可见,该问题是一个世界性的难题。那么接下来我们用c#解决一下,源码如下:

using UnityEngine;using System.Collections;public class Script1 : MonoBehaviour { int aa=0; void hannuota(string a,string b,string c,int n){ if (n > 1) { hannuota (a,c,b,n-1); Debug.Log(a&#;"-->"&#;c); aa&#;&#;; hannuota (b,a,c,n-1); } else{ Debug.Log(a&#;"-->"&#;c); aa&#;&#;; } } void Start(){ hannuota("1","2","3",4); Debug.Log (aa); }}

Unity中自动寻路的几种方法(二) 前面以及讲过A星寻路的大体实现方法,除了A星寻路之外,还有很多类的寻路方案,itween插件就可以实现简单的寻路方案,下面就一个小案例来简要得讲

(Unity)NGUI 按钮的禁用 该文主要研究NGUI中的一组按钮,当一个按钮按下同时禁用掉其他按钮原理:NGUI的控件的交互都少不了BoxCollider的主击触发,故要想禁用掉按钮很简单,

unity3d android 插件 参考自unity官方文档,点击传送方法1首先在unity的assets目录下创建Plugins目录结构,具体如图bin目录里面存放已经打包好了的xxx.jar包(这里也可以在Android目录

标签: [置顶] 汉诺塔的原理剖析以及递归的解决办法

本文链接地址:https://www.jiuchutong.com/biancheng/380217.html 转载请保留说明!

上一篇:Unity3D深入浅出 - Shader基础开发(unity3ds)

下一篇:Unity中自动寻路的几种方法(二)(unityai寻路)

  • 小规模纳税人印花税怎样计算
  • 计算本月应交所得税
  • 电子普通发票和纸质普通发票一样吗
  • 小规模纳税人怎么变成一般纳税人
  • 小规模纳税人滚动累计
  • 履约保证金打到哪个账户
  • 发行股票的手续费计入什么费用
  • 全年一次性奖金税率表
  • 报关单上消费使用单位可以交税么
  • 个人买私募基金还是买公募基金好
  • 未及时支付工资时间界限
  • 销售商品的成本计入什么科目
  • 幼儿园幼儿买花的通知
  • 估价入账固定资产实际入账时补提折旧吗?
  • 预收账款核销的流程
  • 五年之内,企业可追补应扣支出
  • 小规模收到增值税专用发票咋处理
  • 应付账款少说明什么
  • 域名注册费用的会计分录
  • 销售旧房增值税销售额怎么算
  • 申报的国家资助的一个项目如何进行账务处理?
  • 营改增后视同销售的税务处理怎么做?
  • linux系统安装浏览器
  • 税控盘减免税款结转会计分录
  • 在建工程的二级明细的讲解
  • 财务软件上线需注意什么
  • 差额发票可以开1个点吗?
  • 如何使用wordpress建站
  • 老板的工资属于
  • win7如何禁用wifi
  • 提供劳务收入如何核算
  • 30个极致实用的东西
  • 安装winsock
  • discuz论坛修改密码位置
  • 记录一次游戏
  • 通过ChatGPT实现的ChatPDF,简单的应用落地,让你的文档变成一个智能助手,通过对话的方式快速学习文档内容
  • 网络用语屠夫
  • 数据安全数据目录
  • nyud数据集
  • 公司是否可以开具在职证明
  • 运输发票怎么做账
  • 管理费用主要包括
  • 公司申请破产后债务谁来还
  • 港资企业属于什么性质
  • 企业返聘退休人员需要交社保吗
  • 定期定额征收和核定征收哪个好
  • 信用减值损失和资产减值损失的区别
  • 小规模纳税人可以开13的税吗
  • 增值税发票联次及其作用
  • 发票抵扣联可以作为凭证吗
  • 小规模纳税人开专票税率是多少?
  • 研发过程4个主要阶段
  • 装订凭证如何穿线
  • 铁路运费印花税谁承担
  • 房租增值税专票税点
  • 员工拿发票报销账务处理
  • 汽车销售公司代购汽车有风险吗
  • 纳税人的住房租金专项
  • 营改增账务处理实例
  • 年末本年利润怎么转到未分配利润
  • window小技巧
  • 游戏卡怎么打开
  • 苹果电脑dock栏是什么意思
  • windows与xp的区别
  • centosgui
  • 苹果mac系统关机怎么关
  • win8.1使用教程
  • android游戏开发框架
  • html+css网页布局
  • js动态添加dom
  • bat读取文件内所有内容
  • unity link.xml
  • javascript基础教程pdf下载
  • js的文件操作
  • python 嵌套
  • python中getattr函数例子
  • 湖南省低保电话是多少?
  • 国家税务局总局河南官网
  • 长沙的河西包含哪几个区
  • 耕地占用税免税项目需要计入计税依据吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设