我正在使用记忆将斐波那契数的最后计算值保存在字典中。因为(我想)我们不需要以前在字典中计算的所有值,所以我想删除它们。具体来说,我只想保留最后两个计算出的斐波那契数,有没有办法做到这一点?
import sys
sys.setrecursionlimit(10000)
cache = {}
def fib(n):
if n in cache:
return cache[n]
elif n <= 2:
value = 1
else:
value = fib(n-1) + fib(n-2)
cache[n] = value
return value
print(fib(1000))
好的,我找到了。
cache = {}
for x in range(1, 1000001):
if x > 4:
cache.pop(x-3, x-4)
if x <= 2:
value = 1
cache[x] = value
else:
value = cache[x - 1] + cache[x - 2]
cache[x] = value
print(value)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句