前言:
用过python递归的同学可能都碰到过:RecursionError: maximum recursion depth exceeded while getting the str of an object
,是的我也遇到过python递归深度问题。所以当你想要用递归时候是时候考虑你的最坏复杂度,如果你的机器设备允许你这么玩没问题come on递归吧,今天简单谈一下递归深度的问题;
具体内容:
问题一:递归理论深度:在计算机系统上根据计算机性能,是有默认递归深度的;根据机器性能不同可能会有一个不同递归深度(之所以这样说,是因为看大家众说纷纭我也没有那么多机器实测,但是我看到python告诉我的默认递归深度是1000--注意是默认递归深度,那些手动修改了的勿喷,具体上图为证吧)
虚拟机内核是一个cpu,内存1024剩下是我本地的都告诉是1000,那么问题来了真的是1000吗?我觉得需要测试一把;
问题二:递归实际深度:
使用类似斐波那契数列进行实测:
编写代码:
def fib(n):
if n =