递归和反向跟踪在 Python 中是什么?


递归 

递归在分解和求解问题时十分有用。每个递归调用都会自动运行其他递归调用。一个递归函数的核心包括两种情况:递归终止条件,即基本情况,以及函数自调的递归情况。一个通常使用递归求解的简单问题是计算阶乘。递归阶乘算法包括两种情况:n = 0 时为基本情况,n>0 时为递归情况。 

反向跟踪

反向跟踪是求解某些计算难题的一般算法,它逐渐建立求解时的选择方案,从而避免继续处理会导致不可能求解的路径。反向跟踪允许我们在做错选择时进行撤销。

阶乘的一个典型实现如下 -

示例

def factorial(n):
  #test for a base case
     if n==0:
       return 1
         # make a calculation and a recursive call
         f= n*factorial(n-1)
     print(f)
  return(f)
factorial(4)

该代码打印出数字 1、2、4、24。计算阶乘 4 需要四次递归调用以及最初的父调用。 

更新于:19-2 月-2020

718 次阅读

提升你的职业

完成课程取得认证资格

开始
广告