2014-11-23 30 views
-3

嗨我对CS来说相当陌生,而且我很难理解如何开始这个作业问题。这是要求我设计一个解决阿克曼函数的函数ackermann(m,n)。它要求我使用以下逻辑:如果m = 0,则返回n + 1,如果n = 0,则返回ackermann(m-1,1)否则返回ackermann(m-1,ackermann(m,n-1)) 。也有没有人有任何良好的联系,以更好地理解recusion? -Thanks你会如何设计一个能够完成Ackermann功能的程序?

+0

至少采用编程语言! – muradin 2014-11-23 23:25:13

回答

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) 

你可以给你想要的任何号码,但要知道,阿克曼是一个非常递归函数,并可能超过很少数量的堆栈界限。

这里是一个很好的递归理解材料。 stanford intro to recursive

相关问题