gpt4 book ai didi

python - 在论文中跟踪递归函数

转载 作者:太空宇宙 更新时间:2023-11-03 12:16:12 25 4
gpt4 key购买 nike

我现在正在学习递归,俗话说,精通递归的最好方法是尽可能多地练习。我有在纸上追踪程序的习惯(我想我们所有人都曾在某个时候有过)。

例如,如果我有一个函数,比如打印一个从 1 到 10 的数字:

def print_n():
for i in range(1,11):
print i

我会这样追踪:

i
.......
1
2
3
4
... and so on

但是当我练习递归时,我发现很难在纸上追踪程序。有人可以举例推荐一种在纸上跟踪递归函数的最佳方法吗?您可以使用以下斐波那契(再次!!!)来说明您的示例,否则您可能会让读者感到惊讶。

#RECURSIVE FUNCTION TO RETURN Nth FIBONACCI NUMBER
def fib(n):
if n is 0 or n is 1:
return 1
else:
return fib(n-1) + fib(n-2)

最佳答案

只是把这个答案扔在这里。在我的开发中,我经常使用调试器,它们也帮了我很多。所以,我推荐这样做,因为它们通常比仅在递归深度上打印出字符串更有帮助。

当我想跟踪一个递归函数(刚刚写了一个递归答案 here )时,我会做的是将断点设置为特定点。

理想情况下,大多数调试器将允许您查看与当前范围相关的值列表,并允许您进入一个函数调用以查看它是如何运行的。

我通常做的是创建一个对我很重要的变量的观察列表。然后我要做的是创建一个函数调用图。与本网站上创建的图表非常相似,example .

enter image description here

我处理递归的最佳方法是使用与笔和纸捆绑在一起的调试器。或者,如果您的调试器支持静态监视列表,那么您有时甚至不需要这样做。不过,我想说的是,一开始最好用笔和纸勾勒出草图,因为它能让你更好地了解你的程序是如何工作的。有时,人们只是使用递归并期望计算机为他们解决问题,这很棒,但是,您必须知道您的递归是如何工作的,并且(对于初学者)笔和纸张是您最好的工具。

关于python - 在论文中跟踪递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19667925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com