给定生成fibonacci数的函数: if x not in memory:memory[x] = fibonacci(x-1, memory)+fibonacci(x-2, memory)当我尝试一些任意大的数字,比如4000fibonacci数时,我会得到一个错误:
RuntimeError: maximum recursion depth
我目前正在研究项目Euler问题#2,它要求您打印4百万以下的所有fibonacci数之和。我最近才了解到生成器,根据我的理解,它们是用来通过动态生成值来减少内存消耗的(而不是存储在一个庞大的列表中)。当在for循环中使用时,这是否仍然有效,还是只生成所有的值,将它们存储在一个列表中,然后遍历它们?for n in some_generator(): passdef fibonacci(n): # yields all fibonacci number