python - 如何限制同时递归调用2个函数的次数? - Python

标签 python recursion

def f1(t):
    if t < 0:
        return 0
    result = 0
    result = 1.5 * f2(t-1) + 3.5 * f1(t-1)
    return result

def f2(t):
    if t < 0:
        return 1
    result = 0
    result = 1.5 * f1(t-1) + 3.5 * f2(t-1)
    return result

for i in range(10):
    result = 0
    result = f1(i) + f2(i)
    print(result)

运行上面的代码需要花费很多时间。我想将 for 循环中每次迭代的 f1() 和 f2() 执行次数限制为 10 次,然后继续执行下一个 for 循环值。如何做到这一点?

编辑:1.original pseudo code for this part 2.actual functions

最佳答案

我有时需要类似的方法来调试递归代码。一个非常简单的方法是在递归函数之外的作用域中声明变量。

iterations_f1 = 10
iterations_f2 = 10

然后在递归函数中临时添加一些逻辑,以便在满足迭代要求的情况下在另一个递归调用之前返回。

def f1(t):
  global iterations_f1
  iterations_f1 = iterations_f1 - 1
  if iterations_f1 == 0:
    return

  # rest of funtion
  ...

关于python - 如何限制同时递归调用2个函数的次数? - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49086677/

相关文章:

python - Django - 具有多个选择的下拉表单

python 使用 REGEXP 和 mysql 连接器从 mysql 中删除行

tsql - T-SQL 如何从 T-SQL 中的树中获取所有项目?

python - PyQt,在Qwidget上点击 Action

python - 扭曲等待另一个客户

javascript - 在异步调用上使用 Promise 进行递归

Java双参数递归

java - 如何将迭代方法转换为递归方法(Java)

Python fnmatch,检查存在的文件

python - PyCharm 虚拟环境和 Anaconda 环境有什么区别?