2015-11-28 60 views
-1

我打算使用memoization來計算加泰羅尼亞數字,但它似乎不工作,我需要改變什麼?使用記憶計算加泰羅尼亞數字

def catalan_mem(n, memo = None): 
    if n==0: 
     return 1 
    if memo == None: 
     memo = {} 
    b=0 
    if n not in memo: 
     for i in range (n): 
      b+=((catalan_mem(i),memo)[0])*((catalan_mem(n-1-i),memo)[0]) 
    memo[n]=b 
    return memo[n]  

謝謝!

+1

「似乎不起作用」不是一個好問題描述。它是否有例外?它是第一次給出正確的答案,然後是錯誤的答案?它計算錯誤的值嗎?等等。 – DSM

回答

0

如果您致電catalan_memnmemo那麼你用012代替memo[n]。這可能不是你想要的。

不進一步解析邏輯,這表明memo[n]=b應位於if塊的內部。

相關問題