-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]    

谢谢你!

4

1 回答 1

0

如果你调用catalan_mem一个ninmemo然后你memo[n]用 0 替换。这可能不是你想要的。

在不进一步解析逻辑的情况下,这表明memo[n]=b应该在if块内。

于 2015-11-28T15:51:47.060 回答