我正在努力提高我对python中hanoi之塔递归解决方案代码的理解。

此代码:def moveTower(height,fromPole, toPole, withPole):

if height >= 1:

print( " "*(3-height), "moveTower:", height, fromPole, toPole )

moveTower(height-1,fromPole,withPole,toPole)

moveDisk(fromPole,toPole,height)

moveTower(height-1,withPole,toPole,fromPole)

#print(withPole)

def moveDisk(fp,tp,height):

print(" "*(4-height), "moving disk", "~"*(height), "from",fp,"to",tp)

moveTower(3,"A","B","C")

将打印出解决这个难题所需的正确步骤,因此我在前一段时间询问了堆栈溢出问题,以了解它是如何做到这一点的。我得到了这个答案

^{pr2}$

关于这个解释,我唯一不明白的是,在递归中,磁盘目标(peg a、b、c)是如何变化的?第三行-移动塔:1a B,是正确的,我知道光盘应该从A移动到B,但我不明白我们是如何从A到C(第二行)到新的目的地B!这很难解释,如果你不明白我的意思,请问我,但我真的很想帮助你理解这一点!

这就是我所理解的代码,对于3张盘,从=A到=B,with=C,我写了我认为递归应该是什么样子的(这忽略了大部分代码,我只关注顶部部分def moveTower(3,A, B, C):

if height >= 1:

moveTower(2,A,C,B)

moveTower(1,A, C, B) #so this line of code should be A,B,C but why? as in recursion do we not simply repeat the code again and again? so why would it change if the code initially is ACB why does it change to ABC?

moveDisk(A,B,3)

moveTower(1,C,B,A)

python递归汉诺塔详解_汉诺塔在python中递归,理解磁盘目的地的变化相关推荐

  1. java版怎么做猪人塔_我的世界猪人塔详解 各种猪人塔制作教程及原理解析

    我的世界猪人塔详解 各种猪人塔制作教程及原理解析.那下面就给大家将我的世界中几种猪人塔的制作教程以及原理一一给大家分析一下吧!那感兴趣的玩家不妨进来看看下面的这些猪人塔哦!希望对大家有所帮助. 游戏园 ...

  2. python安装失败错误代码0x_详解雨林木风Win10提示“Python 0x80070643安装时发生严重错误”解决方法...

    相信大家对于电脑非常不陌生吧,那你知道Win10专业版中提示"Python 0x80070643安装时发生严重错误"如何解决吗?是由于什么原因导致的呢?不知道了吧,其实系统错误非常 ...

  3. python的抽象类详解_第7.19节 Python中的抽象类详解:abstractmethod、abc与真实子类...

    第7.19节 Python中的抽象类详解:abstractmethod.abc与真实子类 一. 引言 前面相关的章节已经介绍过,Python中定义某种类型是以实现了该类型对应的协议为标准的,而不是以继 ...

  4. python凯撒密码详解_四十八、Python用smtp发邮件详解(163和QQ邮箱)

    Python发邮件详解 一.利用163的smtp发送邮件 import smtplibfrom email.mime.text import MIMETextfrom email.header imp ...

  5. python跳一跳脚本详解_微信跳一跳游戏 python脚本辅助得高分

    微信小程序一时间火爆朋友圈,关键是还有排行榜!游戏操作简单,可直接根据电脑识别,用python写出自动跳辅助脚本,本想动手写下,索性网上有大神写了现成脚本,修改了一小部分参数,就可以稳定使用了霸榜没有 ...

  6. linux shell编程与编辑器使用详解_使用 Mu 编辑器教授 Python | Linux 中国

    导读:Mu 让你轻松学会如何编写 Python 代码. 本文字数:2147,阅读时长大约: 3分钟https://linux.cn/article-12654-1.html 作者:Don Watkin ...

  7. python实现pdf转word详解_手把手|20行Python代码教你批量将PDF文件转为Word格式(包教包会)...

    在日常工作或学习中,经常会遇到这样的无奈: "小任,你把这个PDF中的文件码出来发我" 倒霉,2M的PDF12点也完不了啊! 很多时候在学习时发现许多文档都是PDF格式,PDF格式 ...

  8. python def函数报错详解_【python】详解python函数定义 def()与参数args、可变参数*args、关键参数**args使用实例...

    Python内置了很多函数,可以直接调用.Python内置的函数可以通过官方文档查看.也可以通过help()查看帮助信息.函数名是指向函数对象的引用,把函数名赋给变量,相当于给函数起了别名. 1. 定 ...

  9. python读取数据的函数详解_你了解文件缓存机制吗?磁盘文件如何读写?Python中open函数详解...

    我们知道,在使用Python打开一个文件时,一般使用的是open()函数,但是你真正了解这个函数么?文件打开后如何进行缓存?对于大文件它是如何处理的?今天,小编带你来详细了解一下-- Python如何 ...

最新文章

  1. leetcode 79:simplify path
  2. linux磁盘、分区、设备简单介绍
  3. 计算机组成原理CRC相关运算,计算机组成原理复习
  4. loardrunner- 集合点函数设置
  5. python中randint用法_python中的randint,引入模块
  6. aboutface4 1-3 读书笔记 幕布 思维导图
  7. java中final类调用_Java中final的使用
  8. 深入解析CAS算法原理
  9. 深度解读|盘扣销售价格上涨背后的原因是什么?
  10. 1373:鱼塘钓鱼(fishing)
  11. 怎么彻底卸载cad2017_电脑中cad卸载不干净重装失败的处理方法
  12. uniapp 空格怎么打?
  13. Ajax响应前和完成事件 / beforeSend complete / 判断ajax是否执行完毕
  14. ClassFactory 无法供应请求的类 (异常来自 HRESULT:0x80040111 (CLASS_E_CLASSNOTAVAILABLE))
  15. 为什么模电这么难学?一文带你透彻理解模电
  16. Hibernate 中setResultTransformer使用
  17. 线性电阻电路方程的建立方法
  18. 360doc个人图书馆解决复制问题
  19. STM32F103定时器解码PT2262
  20. 43.XDMA寄存器详解7-MSI-X Vector Table and PBA寄存器组剖析及MSI-X中断详解

热门文章

  1. at指令 和c语言,学渣求指教,如何识别字符串中的AT命令并逐个输出,求程序!!!...
  2. Java使用ojdbc连接Oracle数据库时不能使用服务名连接的问题
  3. python中common是什么意思_common中的python无效语法
  4. 【Linux环境下安装Maven与环境配置简易教程】
  5. Vue-CLI@4——html-webpack-plugin默认配置的获取与修改
  6. JAVA——HttpClient封装工具类
  7. Edraw Max——亿图图示设计软件基本使用教程
  8. Parity Alternated Deletions
  9. Just a Simple Problem
  10. 【多线程编程学习】java多线程基于数据分割的大文件下载器