位置: 编程技术 - 正文

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

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

  • 保险中的车
  • 离岸价的含义
  • 微信支付宝等三方支付平台余额属于货币资金吗
  • 企业并购需要交什么税
  • 个体户购买社保和自由人购买社保区别
  • 企业生产过程中执行标准要把握好以下原则
  • 土地使用权入账价值包括哪些
  • 不合格发票入账责任
  • 企业所得税季度申报
  • 购买电脑的方案
  • 去年增值税销项少2元
  • 国税开运输发票后地税怎么报税?
  • 单位付款方式
  • 增值税进项发票网上勾选平台
  • 企业以前年度的亏损在哪查
  • 无形资产的入账价值包括宣传费吗
  • 计提水电费是什么凭证
  • 建筑施工单位可以安装电表吗
  • 支票大写金额书写转换
  • 个体户如何办税
  • 或有负债如何计量
  • 如何在excel中添加多行空白
  • 包装物押金收入含税吗
  • 应收账款补贴
  • 事业编党费如何核算
  • 怎么通过mac地址访问设备
  • 基于thinkphp的学园招聘系统项目源代码
  • 男人喜欢什么样的女人最容易动心
  • 网站国际化方案
  • 污水处理厂能享受补助吗
  • php实现快速排序算法
  • 职工报销医药费属于什么会计科目
  • php字符串包含某个字符串
  • 创建ftp软件
  • 速动资产是指
  • 残疾基金出什么科目
  • 哪些税是季报
  • 织梦cms怎么样
  • 企业收取的罚款需要交企业所得税吗
  • mongodb 全文索引
  • python 熵值法
  • 政府向企业发放用工补贴政策
  • 小规模纳税人不超过30万怎么做账
  • mysql服务器怎么启动
  • mysql 指定my.cnf
  • 小规模企业所得税怎么征收
  • 如何评价福建省
  • 内账会计的岗位职责
  • 企业注销后账务保留多久
  • 税控服务费全额抵扣怎么申报
  • 跨年发票应该如何处理
  • 结转后还可以改凭证吗
  • 员工自己承担的社保费用进入管理费用吗
  • 扶贫差旅费
  • 当月结转销售成本分录
  • 财务费用包括哪几项
  • 酒店会计科目表
  • mysql远程用户登录
  • mysql数据库备份与恢复的常用方法有几种
  • win造字软件
  • gnaupdaemon.exe是什么
  • 锁屏壁纸设置后不显示怎么办
  • win8.1连不上wifi
  • 基于jQuery的设计与实现
  • cocos2dx4.0教程
  • linux服务器硬件配置要求
  • unity自带的代码编辑器
  • 深入理解python异步编程
  • python生成随机
  • NGUI的depth和Z轴的关系
  • unity转盘游戏
  • 深入理解ffmpeg pdf
  • unity简单小游戏案例
  • linux读出文件
  • Express + Session 实现登录验证功能
  • 2022年安徽城镇非私营单位平均工资
  • 虚假纳税申报的法律责任
  • 建设工程合同纠纷属于专属管辖吗
  • 新企业会计准则长期待摊费用
  • 图书行业税率多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设