In this lesson, you’ll go over the Fibonacci series and see how to solve it recursively. You’ll also learn how to use a cache to drastically improve runtime:
from functools import lru_cache def fibonacci_recursive(n): # base cases if n == 0: return 0 elif n == 1: return 1 return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2) @lru_cache(maxsize=None) def fibonacci_recursive_optimized(n): # base cases if n == 0: return 0 elif n == 1: return 1 return fibonacci_recursive_optimized(n - 1) + fibonacci_recursive_optimized(n - 2)
matteoarellano on Feb. 23, 2022
Does the cache work in sequential ascending order? Let’s say you evaluate first on n=500 on another type of function that is not fibonacci, does the same principle apply or only for specific type of function?