位置: 编程技术 - 正文

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

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

  • 工资里个人代扣款是什么
  • 税务申报指的是什么
  • 当月认证发票进项税转出能不能第二个月转出
  • 外商投资合伙企业的性质与特征
  • 去税务局开增值税专用发票需要缴费吗
  • 取得的股息红利收入计入哪个科目
  • 全年没有超过起征点需要汇算吗
  • 汇兑损益一般是多少
  • 营业执照备案需要什么资料
  • 做网站的费用会计分录
  • 小规模纳税人申请电子发票流程
  • 预付冲应付会计分录摘要
  • 已认证抵扣的发票如何红字信息表
  • 财务费用手续费有哪些
  • 别人退保证金多久能到账
  • 仲裁费用计入什么会计科目
  • 车辆租赁费可以一次性计入费用吗
  • 出口退税生产企业增值税附加税怎么申报
  • 企业所得税一般纳税人是怎么缴纳的
  • 原材料总分类账怎么写
  • 安置房税金如何交
  • 小型微利企业的企业所得税优惠政策
  • 一般纳税人纳税申报表
  • 会计档案的保管期限是从什么算起
  • 在建工程的施工方案可以外传吗
  • 股东不用上班吗
  • 在win7中,如何搜索指定扩展名的文件
  • 借条无还款时间怎么办
  • opera software
  • 企业职工福利费的扣除标准是多少?
  • 本地运行库是什么
  • 没有抵扣联可以作废吗
  • 补缴免抵退
  • web无法运行
  • php如何实现mysql数据的删除
  • 资本公积转增资本金
  • PHP自定义函数返回两个数中大的那个
  • 好用的5款国产手机推荐
  • 物流公司过户给我需要做什么
  • linux系统操作教程
  • 大数据相关框架
  • 现金的盘亏的账务处理
  • 床垫可以开专票抵扣吗
  • 捐赠利得的会计科目
  • 函数模拟图
  • 员工借款未还离职怎么办
  • 一个简单的后台与数据库交互的登录与注册[sql注入处理、以及MD5加密]
  • 教育类财务工作内容
  • sqlserver控制台
  • 金税四期上线后如何查虚开
  • 企业所得税视同销售的会计处理是?
  • 本年利润会计分录怎么写
  • 营业收入的核算方式有哪些
  • 出售抵债资产账务处理
  • 城镇土地使用税怎么算
  • 个人开技术服务费
  • 收到海关进口关税怎么办
  • 收到免税发票怎么做账
  • 购置一项设备,有两种可供选择
  • 如何计算更新改造后的入账价值
  • 有契税发票没有增值税发票
  • 转回存货跌价准备对递延所得税资产的影响
  • 如何查看windows2008修改密码日志
  • mac怎样解压缩
  • mac双系统切换快捷键
  • 如何封禁
  • mac怎么恢复出厂设置
  • win10的用户
  • Linux VPN 出现 807 错误的解决办法
  • opengl入门教程(精)
  • 层序遍历递归实现
  • shell脚本中计算变量除法
  • python操作access数据库
  • 示例代码
  • 如何判断python列表长度
  • 四川省地方税务局
  • 一年内在两家公司任职个税汇算清缴
  • 税务如何查饭店信息
  • 2023年印花税税目表
  • 请问在哪里可以看到
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设