Code Explanation:
1. Import lru_cache
from functools import lru_cache
lru_cache stands for Least Recently Used cache.
It's a decorator that caches the results of function calls so repeated inputs don't recompute.
2. Define Fibonacci Function with Memoization
@lru_cache()
def fib(n):
return n if n < 2 else fib(n - 1) + fib(n - 2)
This is a recursive function for computing Fibonacci numbers.
Base case: If n is 0 or 1, return n directly.
Recursive case: Add the previous two Fibonacci numbers:
F(n)=F(n−1)+F(n−2)
@lru_cache() stores the result of each call so fib(5) doesn’t recalculate fib(4) and fib(3) again — this drastically improves performance!
3. Compute fib(10)
print(fib(10))
The 10th Fibonacci number (using 0-based indexing) is:
F(0)=0F(1)=1F(2)=1F(3)=2F(4)=3F(5)=5F(6)=8F(7)=13F(8)=21F(9)=34F(10)=55
Output:
55
0 Comments:
Post a Comment