嗨,我对CS很新,我很难知道如何解决这个问题。它要我设计一个能解决阿克曼函数的函数ackermann(m,n)。它要求我使用以下逻辑:如果m = 0,则返回n + 1,如果n = 0则返回ackermann(m-1,1),否则返回ackermann(m-1,ackermann(m,n) -1))。还有谁有任何良好的链接,以更好地理解错觉? -Thanks
答案 0 :(得分:0)
程序语言中的递归函数声明与算法伪代码非常相似。
这是python中的一个简单的ackerman
函数:
def ackermann (m, n):
if m==0:
return n+1
elif n==0:
return ackermann(m-1,1)
else:
return ackermann(m-1,ackermann(m,n-1))
print ackermann(3,3)
你可以给出你想要的任何数字,但要注意ackermann是一个非常递归的函数,并且可能会超过数量很少的堆栈边界。
这是递归理解的好材料。 stanford intro to recursive