使用记忆

时间:2015-11-28 15:49:01

标签: python memoization catalan

我想使用记忆来计算加泰罗尼亚语数字,但它似乎不起作用,我需要改变什么?

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 个答案:

答案 0 :(得分:0)

如果您在catalan_mem的{​​{1}}上致电n,则将memo替换为0.这可能不是您想要的。

如果不进一步解析逻辑,则表明memo[n]应位于memo[n]=b块内。