|
|
-
-
-
-
- ```Python
- def fib(n):
- if n == 0 or n == 1:
- return n
- return fib(n-1) + fib(n-2)
- ```
-
- ![Recursive Definition](media/fibonacci/RecursiveDefinition.png)
-
-
- ```Python
- def fibHelper(n, a, b):
- if n == 0:
- return a
- elif n == 1:
- return b
- return fibHelper(n-1, b, a+b)
-
-
- def fibIterative(n):
- return fibHelper(n, 0, 1)
- ```
-
- ![Iterative Performance](media/fibonacci/Iterative.png)
-
-
- ```Python
- def multiply(a,b):
- product = [0,0,0]
- product[0] = a[0]*b[0] + a[1]*b[1]
- product[1] = a[0]*b[1] + a[1]*b[2]
- product[2] = a[1]*b[1] + a[2]*b[2]
- return product
-
-
- def power(l, k):
- if k == 1:
- return l
- temp = power(l, k//2)
- if k%2 == 0:
- return multiply(temp, temp)
- else:
- return multiply(l, multiply(temp, temp))
-
-
- def fibPower(n):
- l = [1,1,0]
- return power(l, n)[1]
- ```
-
- ![FibPower Performance](media/fibonacci/FibPower.png)
-
-
- ![FibPower Performance](media/fibonacci/FibPowerBigPicture.png)
|