mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-30 16:31:08 +00:00
Improving coverage for matrix_exponentiation.py
This commit is contained in:
parent
2cdda8a7b6
commit
3136833d4a
|
@ -39,6 +39,21 @@ def modular_exponentiation(a, b):
|
||||||
|
|
||||||
|
|
||||||
def fibonacci_with_matrix_exponentiation(n, f1, f2):
|
def fibonacci_with_matrix_exponentiation(n, f1, f2):
|
||||||
|
"""
|
||||||
|
Returns the n number of the Fibonacci sequence that
|
||||||
|
start with f1 and f2
|
||||||
|
Use the matrix exponentiation
|
||||||
|
>>> fibonacci_with_matrix_exponentiation(1, 5, 6)
|
||||||
|
5
|
||||||
|
>>> fibonacci_with_matrix_exponentiation(2, 10, 11)
|
||||||
|
11
|
||||||
|
>>> fibonacci_with_matrix_exponentiation(13, 0, 1)
|
||||||
|
144
|
||||||
|
>>> fibonacci_with_matrix_exponentiation(10, 5, 9)
|
||||||
|
411
|
||||||
|
>>> fibonacci_with_matrix_exponentiation(9, 2, 3)
|
||||||
|
89
|
||||||
|
"""
|
||||||
# Trivial Cases
|
# Trivial Cases
|
||||||
if n == 1:
|
if n == 1:
|
||||||
return f1
|
return f1
|
||||||
|
@ -50,6 +65,21 @@ def fibonacci_with_matrix_exponentiation(n, f1, f2):
|
||||||
|
|
||||||
|
|
||||||
def simple_fibonacci(n, f1, f2):
|
def simple_fibonacci(n, f1, f2):
|
||||||
|
"""
|
||||||
|
Returns the n number of the Fibonacci sequence that
|
||||||
|
start with f1 and f2
|
||||||
|
Use the definition
|
||||||
|
>>> simple_fibonacci(1, 5, 6)
|
||||||
|
5
|
||||||
|
>>> simple_fibonacci(2, 10, 11)
|
||||||
|
11
|
||||||
|
>>> simple_fibonacci(13, 0, 1)
|
||||||
|
144
|
||||||
|
>>> simple_fibonacci(10, 5, 9)
|
||||||
|
411
|
||||||
|
>>> simple_fibonacci(9, 2, 3)
|
||||||
|
89
|
||||||
|
"""
|
||||||
# Trivial Cases
|
# Trivial Cases
|
||||||
if n == 1:
|
if n == 1:
|
||||||
return f1
|
return f1
|
||||||
|
@ -61,10 +91,10 @@ def simple_fibonacci(n, f1, f2):
|
||||||
n -= 2
|
n -= 2
|
||||||
|
|
||||||
while n > 0:
|
while n > 0:
|
||||||
fn_1, fn_2 = fn_1 + fn_2, fn_1
|
fn_2, fn_1 = fn_1 + fn_2, fn_2
|
||||||
n -= 1
|
n -= 1
|
||||||
|
|
||||||
return fn_1
|
return fn_2
|
||||||
|
|
||||||
|
|
||||||
def matrix_exponentiation_time():
|
def matrix_exponentiation_time():
|
||||||
|
|
Loading…
Reference in New Issue
Block a user