2014-11-23 116 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

相關問題