Code Explanation:
Importing the LRU Cache Decorator
from functools import lru_cache
What it does: Imports the lru_cache decorator from the functools module.
Why it's used: lru_cache (Least Recently Used cache) stores results of expensive function calls and returns the cached result when the same inputs occur again. This is useful for optimizing recursive functions like Fibonacci.
Decorating the Function with Cache
@lru_cache(maxsize=3)
What it does: Applies the lru_cache to the function that follows.
Parameter: maxsize=3 limits the cache to store only the 3 most recently used results. Older values are discarded when the cache is full.
Why it's important: Reduces redundant calculations in recursion.
Defining the Fibonacci Function
def fib(n):
What it does: Starts the definition of the Fibonacci function.
Parameter: n is the position in the Fibonacci sequence to calculate.
Handling the Base Case
if n < 2:
return n
What it does: Handles the base case of the recursion.
Explanation:
If n is 0 → return 0
If n is 1 → return 1
These are the first two numbers in the Fibonacci sequence.
Recursive Case
return fib(n-1) + fib(n-2)
What it does: Calls fib recursively to calculate the nth Fibonacci number.
How it works:
For n ≥ 2, Fibonacci is defined as:
fib(n) = fib(n-1) + fib(n-2)
This adds the two preceding Fibonacci numbers.
Calling the Function and Printing the Result
print(fib(5))
What it does: Calls fib(5) and prints the result.
Final Output: 5
This is the 5th number in the Fibonacci sequence (0-based indexing):
0, 1, 1, 2, 3, 5
.png)

0 Comments:
Post a Comment