位置: 编程技术 - 正文

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

编辑: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寻路)

  • 视同内销增值税怎么申报
  • 安徽增值税发票勾选认证流程
  • 哪些收据可以入帐
  • 补缴关税税率
  • 银行借款的实际利率=名义年利息/实际贷款额*100%
  • 对方开给我的专票遗失了,让我上传发票
  • 销售货物应税劳务服务清单给客户一份是不是就可以了
  • 文化事业费是什么意思
  • 没申报可以开票嘛
  • 长期股权投资的4个明细科目
  • 票据遗失可以采取哪些补救措施
  • 小规模纳税人按1%征收增值税
  • 小微企业银行贷款印花税
  • 免抵退税额账务处理流程
  • 公司买车可以抵什么税
  • 土地转让增值税计税依据
  • 老项目简易征收可以用进项抵扣吗
  • 2020年资金账簿印花税最新规定
  • 季度申报财务报表如何更改
  • 投资性房地产后续支出包括
  • 银行代扣社保怎么做会计分录
  • bios设置独立显卡优先启动
  • 工伤保险的作用有
  • php存储过程是什么
  • 贷款损失会计处理
  • 时序模型算法
  • ant design vue vue3
  • 如何分清福利性劳动
  • 销售点的增值税计算公式
  • css 单行显示
  • Pinia(二)了解和使用Store
  • php制作微信小程序
  • 差额征税七种业务是什么
  • php代码生成
  • 基于vue的网上商城
  • 住宿费可以抵扣进项吗
  • 三代手续费的税率
  • 企业之间的借款属于民间借贷吗
  • 债权转让收益需缴税吗
  • 公司房租收据怎么写
  • java 邮件
  • 申报缴纳上月税费的会计分录
  • 小企业会计准则适用于哪些企业
  • 同一控制下合并报表恢复留存收益
  • 事业单位退休人员判缓刑最新规定
  • 税务师考试的报名时间
  • 资产负债表应交税费是负数正常吗
  • 买方的现金折扣会计分录
  • 小规模没有销售额如何申报
  • 建筑安装业,指从事____的企业
  • 视同销售是按成本价入账还是按计税价格入账,为什么?
  • 审计库存现金盘点表
  • 绿化工程苗木成活率交工标准
  • 单位代扣代缴个人所得税凭证
  • 工商营业执照变更网上怎么操作
  • 物流公司保险怎么买
  • sql数据库死锁产生的原因及解决方案
  • sql server索引的作用
  • win81蓝屏重启故障
  • win2003server远程设置
  • ubuntu20.04安装配置
  • win8只能应用商店下软件吗
  • Windows tips小技巧
  • 内存使用过低
  • cocos2dx官方教程
  • 关于月亮的诗句
  • jquery插件怎么写
  • python让用户选择
  • perl计算时间差
  • 排序方法python
  • NodeJS配置HTTPS服务实例分享
  • system命令行
  • unity camera fov
  • js制作qq简易聊天框
  • doctype报错
  • jquery查找节点
  • js实现复制文本
  • 河北税务怎么看自己绑定的银行卡号
  • 龙岗区龙岗税务局地址
  • 盘州市税务局党组成员图片
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设