之前看鱼C的汇编教程学了一段时间,在调研了各路大神的言论后,毅然决定转学Python了
经过这两周的学习,发现Python果然是适合初学者,函数语法都比较简单易懂,而且能够很快的实现一些小功能,为枯燥的学习过程增添一点乐趣。
今天学习的递归算法,求解经典的汉诺塔的问题,让我第一次感受到了程序的强大之处,之前虽然知道程序可以做什么,但一直不知道具体是如何一步一步实现的,在学习了递归算法求解汉诺塔问题后,才彻彻底底的感受到了程序的牛逼之处,虽然这只是一个简单到不能再简单的小程序,但却仿佛为我打开了一扇大门,通向光明大道。
下边就递归及汉诺塔问题,跟大家交流一下我的看法,不对的地方还请大神们指正!谢谢
首先,我对递归的理解,递归的原理在于,分析问题从结果出发,往前推演,可以通过对参数的改变,将问题分解成一步步的简单步骤来解决,最后由明确的返回值来结束函数。
对于汉诺塔问题:
1、如下图1所示,我们假设一个4级的汉诺塔,目的是将4层塔从X,移动到Z,一次只能移动一层,且只能按顺序放置
----------所以我们先定义一个函数:def hanoi(n,x,y,z) ####n代表了塔的层数,对于4层汉诺塔n就等于4,x y z分别代表3个轴#######