位置: 编程技术 - 正文

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

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

  • 进口商品需要缴纳哪些税
  • 土地使用税怎么征收标准
  • 设计合同服务期限怎么写
  • 待抵扣进项税额和待认证进项税额的区别
  • 生产成本存货会计分录
  • 安装设备领用自产产品按成本还是计税价格
  • 销售给客户红包,说给的现金,如何把控
  • 受托方的计税价格是什么意思
  • 营业外支出税前扣除比例是多少
  • 辅导期一般纳税人预缴增值税
  • 公司代扣代缴个人所得税能查到吗
  • 纳税人如何办理纳税申报
  • 劳务分包有执照没资质能开票吗?
  • 企业所得税税率2023年最新税率表
  • 2018年个体工商户增值税起征点
  • 小规模纳税人附加税减半征收
  • 长投成本法分红分录
  • 发票和款未付可以抵扣吗
  • 房地产企业资金监管账户
  • 应收款项包括哪些内容,各自有何特点?
  • 业绩补偿协议
  • 客户年会赞助是公司账户转嘛
  • 法人治理包括哪些方面
  • 先征后返的会计分录
  • 以土地使用权投资入股的土地增值税
  • 出口发票汇率按照报关单什么时间计算
  • 固定资产入账价值计算公式
  • 宽带连接错误678最简单的解决方法
  • 合伙企业必须有什么并以其作为企业法律基础
  • 使用PHP similar text计算两个字符串相似度
  • 艾叶泡脚的方法和注意事项
  • php or
  • 公司制作一个app要多少钱
  • 极路由怎么用
  • realsense d415参数
  • 未交土地出让金的处罚
  • 火车票抵扣进项税怎么申报填写
  • thinkphp yii
  • winform 文件上传
  • antd form table
  • 销售成本销售收入的关系
  • 厂区租赁 法律规定
  • 公益性捐赠递延注会
  • 查账征收的纳税人能否简易注销
  • 如何用python给excel每一行添加序号
  • 提供营业执照范本图片
  • mysql复制表语句
  • sqlyog提示
  • 应交税费案例分析题
  • 入股资金打入公司账户
  • 什么是指企业的市场营销活动发生影响的各种因素的总和
  • 饭店开业多久可以正常
  • sql扩展
  • 小规模增值税税率2023
  • 收汇结汇以什么汇率入账
  • 收据可以入账吗,符合税法规定吗
  • 怎么调整应收账款分录
  • 补缴以前年度养老保险分录
  • 非流动资产处置利得计入什么科目
  • mysql输入密码命令
  • windows软件包2012能删吗
  • win8怎么禁用强制驱动签名
  • elccest.exe是间谍广告程序吗 elccest进程有什么作用
  • cpu numa
  • win7激活后grub
  • Android GLSurfaceView.Renderer
  • unity-3d
  • cssimport
  • jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
  • python读入txt
  • jquery fullpage
  • Android调用系统的电话拨号程序
  • dom4j解析xml字符串步骤
  • bootstrap要学到什么程度
  • Android多个surface
  • python mor
  • 上海市个人所得税计算
  • 北京国税电子税务局
  • 辽宁取暖补贴发放标准2020
  • 深圳如何打印个人征信
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设