C++ on OranLooney.com
https://www.oranlooney.com/tags/c++/
Recent content in C++ on OranLooney.com
Hugo  gohugo.io
en
© Copyright {year} Oran Looney
Tue, 19 Feb 2019 00:00:00 +0000

A Fairly Fast Fibonacci Function
https://www.oranlooney.com/post/fibonacci/
Tue, 19 Feb 2019 00:00:00 +0000
https://www.oranlooney.com/post/fibonacci/
A common example of recursion is the function to calculate the \(n\)th Fibonacci number:
def naive_fib(n):
if n < 2:
return n
else:
return naive_fib(n1) + naive_fib(n2)
This follows the mathematical definition very closely but itâ€™s performance is
terrible: roughly \(\mathcal{O}(2^n)\). This is commonly patched up with dynamic
programming. Specifically, either the memoization:
from functools import lru_cache
@lru_cache(100)
def memoized_fib(n):
if n < 2:
return n
else:
return memoized_fib(n1) + memoized_fib(n2)
or tabulation: