什么是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,需要四个递归调用加上初始父调用。