前段时间做编译课设时老师提到了汉诺塔的非递归不容易做出来,于是我趁着寒假有点时间就想试着搞一搞。下面我把我的一些草稿先列出来,以免以后忘记。

下面这个模型是适合于偶数个盘片的情况的。奇数的情况类似可得。

根据图1,我把每三个输出(如ab,ac,bc表示表示盘片从a移到b上,盘片从a移到c上,盘片从b移到c上)用一个数来标记,这里我把它标记为1,具体见图2。

然后根据递归算法下的输出来导出一些数据。

根据导出的数据,每24个输出为一个单位,得到8个数字,每8个数字之间会形成规律,再对这种规律进行分析即可。

由于我还不会把递归算法的数据自动导出为数字,所以这些工作还没有完结,以后会导出了再来继续解决。

=

转载于:https://www.cnblogs.com/lj95/p/10260743.html

关于汉诺塔非递归算法的一点思考相关推荐

  1. 理解 Hanoi 汉诺塔非递归算法

    汉诺塔介绍: 汉诺塔(港台:河内塔)是根据一个传说形成的数学问题: 最早发明这个问题的人是法国数学家爱德华·卢卡斯. 传说越南河内某间寺院有三根银棒,上串 64 个金盘.寺院里的僧侣依照一个古老的预言 ...

  2. 汉诺塔非递归算法分析与实现

    汉诺塔的递归算法很容易理解,也非常容易实现.下面,本文讨论了汉诺塔问题的非递归算法,核心内容就是栈的使用技巧. 首先,对于每个柱子来说,就是一个栈,这个栈有个特点就是,大数放在下面,小数放在上面.在首 ...

  3. 汉诺塔问题递归算法python代码_[python]汉诺塔问题递归实现

    一.问题描述及算法步骤 汉诺塔问题的大意是有三根柱子a, b, c,现在a柱有N个盘子从下往上尺寸递减排列,要求: 1. 将a上的盘子移动到c柱上; 2. 每次移动一个盘子; 3. 柱子上的盘子始终必 ...

  4. python堆栈汉诺塔非递归_汉诺塔问题的递归解法和非递归解法(python语言实现)...

    汉诺塔问题的非递归解法(python语言类解法) #!/usr/bin/env python #coding:utf-8 import sys import time reload(sys) sys. ...

  5. 汉诺塔问题——递归算法

    一.问题描述 汉诺塔问题是一个经典的问题.汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘 ...

  6. 汉诺塔的递归算法与解析

    前言 递归是一种强大的编程技术,他把一个问题分解为一组相似的子问题,每一问题都用一个寻常解去解决.递归函数就是会直接或者间接调用自身的一种函数,一般来说,一个递归函数调用自身去解决它的子问题. &qu ...

  7. 彻底解决汉诺塔问题——递归算法

    关于递归: 一定不要试图跟踪大型递归的过程! 要写出递归,关键就是找出递归的递归方程式: 也就是说,要完成最后一步,那么最后一步的前一步要做什么. 1)在求f(n, other variables)的 ...

  8. 汉诺塔(递归算法)C语言

    河内之塔 说明 河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的, 河内为越 战时北越的首都, 即现在的胡志明市: 1883年法国数学家 Ed ...

  9. 汉诺塔(Hanoi)递归算法

    相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏.该游戏是在一块铜板装置上,有三根杆(编号A.B.C),在A杆自下而上.由大到小按顺序放置64个金盘. 游戏的目标:把A杆上的金盘全部移到C杆 ...

最新文章

  1. c js html页面进度条,js实现进度条的方法
  2. Oracle9i数据库Data Guard实施及维护手册 1
  3. 京东刘海锋:过去十年架构领域最重要的三个变化
  4. 数据结构与算法(一):排序算法之 - 快速排序(详细步骤图解,附代码)
  5. scrapy 伪装代理和fake_userAgent的使用
  6. KVM虚拟机安装使用教程(Ubantu)
  7. 于无声处 启明星辰吹响工控安全号角
  8. 统计github本地仓库的代码行数
  9. ZTE 5G UPF 性能白皮书
  10. 嘀嘀的费用是优步的两倍?
  11. 重读Ardupilot中stabilize model+MAVLINK解包过程
  12. 我的世界服务器修改地图,我的世界如何修改地图?
  13. 资产配置记录20210814
  14. 如何修改需要以管理员身份才能操作的文件(极其简单的技巧)
  15. Gamma校正及其实现
  16. Git版本控制管理——diff
  17. ATF lds和代码section如何关联
  18. Win7 UltraIso刻录时报错解决办法
  19. 华为鸿蒙基金,基金筛选:华为鸿蒙新版即将揭开面纱
  20. 【自动化运维新手村】Web框架序篇

热门文章

  1. MySQL编程(0) - Mysql中文乱码问题解决方案
  2. mysql for Mac 下创建数据表中文显示为?的解决方法
  3. server 2008 R2 使用笔记
  4. OpenStack Ocata版本国内代码贡献盘点
  5. CoreSight介绍篇
  6. Searchable(搜索功能)(转)
  7. 多线程并发:每个开发人员都应了解的内容
  8. 《潜伏》走红背后的心理原因
  9. 黑马lavarel教程---8、session
  10. AlertDialog中的EditText不能输入