小编Tid*_*les的帖子

Python 中的斐波那契函数记忆

我正在解决一个问题代码战争中的一个问题,希望你记住斐波那契数列。到目前为止我的解决方案是:

\n\n\n\n
def fibonacci(n):  \n    return fibonacci_helper(n, dict())\n\ndef fibonacci_helper(n, fib_nums):\n    if n in [0, 1]:\n        return fib_nums.setdefault(n, n)\n\n    fib1 = fib_nums.setdefault(n - 1, fibonacci_helper(n - 1, fib_nums))\n    fib2 = fib_nums.setdefault(n - 2, fibonacci_helper(n - 2, fib_nums))\n\n    return fib_nums.setdefault(n, fib1 + fib2)\n
Run Code Online (Sandbox Code Playgroud)\n\n

对于较小的 n 值,它工作得相当好,但超过 30 标记时速度明显减慢,这让我想知道 \xe2\x80\x94 这个解决方案是否已被记忆?对于较大的 n 值,如何让这种类型的解决方案足够快地工作?

\n

python memoization fibonacci

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

标签 统计

fibonacci ×1

memoization ×1

python ×1