【发布时间】:2013-04-14 01:08:49
【问题描述】:
例如,在像这样的图上编写一些算法时
def f(graph):
#graph is dictionary of pairs vertex_i:{set of edges (i,j)} for 1<=i,j<=n
def g(vertex):
for vertex1 in graph:
do sth
...
for (i,j) in graph[vertex1]:
...
g(j)#recursive call
...
return ...
return g(1)
有限的递归深度有时很烦人,因为如果你不得不避免递归,代码会变得更长更复杂。 有没有办法达到无限深度? 也许你可以用下面的方法描述你对问题的一般解决方案
def nthNumber(n):
if n==1: return 1
else: return nthNumber(n-1)+1
(我知道这很简单,请不要给出“你应该只写 nthNumber(n): return n ”之类的答案——我对一般解决方案很感兴趣)。感谢您的帮助!
【问题讨论】:
-
让我换一种说法:有没有可能做一个最大的递归方法。深度 104 还是 105?
-
您可以将递归限制设置为 10**4,但最终可能会导致 python 崩溃(它可能超过了安全限制 - 这取决于操作系统)。另外:stackoverflow.com/questions/2917210/…
标签: python recursion infinite depth