小编Md *_*kib的帖子

python中的记忆斐波那契算法

我有这种记忆技术来减少获取斐波那契序列号的调用次数:

def fastFib(n, memo):
    global numCalls
    numCalls += 1
    print 'fib1 called with', n
    if not n in memo:
        memo[n] = fastFib(n-1, memo) + fastFib(n-2, memo)
        return memo[n]


def fib1(n):
    memo = {0:1, 1:1}
    return fastFib(n, memo)


numCalls = 0
n = 6
res = fib1(n)
print 'fib of', n,'=', res, 'numCalls = ', numCalls
Run Code Online (Sandbox Code Playgroud)

但我被困在这里:memo[n] = fastFib(n-1, memo) + fastFib(n-2, memo)和这里memo = {0:1, 1:1}。每次我想获得一个号码的 fib 时,它是如何准确减少呼叫次数的?

python algorithm memoization

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

algorithm ×1

memoization ×1

python ×1