大家好,今天小编关注到一个比较有意思的话题,就是关于python编程学习递归的问题,于是小编就整理了2个相关介绍python编程学习递归的解答,让我们一起看看吧。
python递归能有几个基例?
所谓基例就是不需要递归就能的,一般来说是问题的最小规模下的解。 例如:斐波那契数列递归,f(n) = f(n-1) + f(n-2),基例是1和2,f(1)和f(2)结果都是1 再比如:汉诺塔递归,基例就是1个盘子的情况,只需移动一次,无需递归 递归必须有基例,否则就是无法退出的递归,不能求解。
python中的汉诺塔递归算法的具体运算过程是怎样的?
最基本的递归算法问题啊!
所谓汉诺塔,就是将n个盘子,从A柱借助B柱,挪动到C柱。那么这个过程其实可以分解为三步,先将n-1个盘子,从A挪到B,借助了C。然后将最大的盘子从A挪到C,最后就是将n-1个盘子从B挪到C,借助了A。
因此这个过程分解为了以下的函数处理,***设某函数f处理n-1个盘子,就是,
f(startpoint,endpoint,midpoint)
***设某函数处理单个盘子移动,就是
move(startpoint,endpoint)
这样,一开始是f('A','C','B')
移动的过程就变化为了三步
f('A','B','C') 实际是f(startpoint,midpoint,endpoint)
move('A','C') 实际是move(start, end)
到此,以上就是小编对于python编程学习递归的问题就介绍到这了,希望介绍关于python编程学习递归的2点解答对大家有用。