From 3136833d4a1bc014309763221a3ee3a67731611e Mon Sep 17 00:00:00 2001 From: Scarfinos Date: Wed, 20 Nov 2024 12:28:43 +0100 Subject: [PATCH] Improving coverage for matrix_exponentiation.py --- maths/matrix_exponentiation.py | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/maths/matrix_exponentiation.py b/maths/matrix_exponentiation.py index 7c37151c8..18570f389 100644 --- a/maths/matrix_exponentiation.py +++ b/maths/matrix_exponentiation.py @@ -39,6 +39,21 @@ def modular_exponentiation(a, b): 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 if n == 1: return f1 @@ -50,6 +65,21 @@ def fibonacci_with_matrix_exponentiation(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 if n == 1: return f1 @@ -61,10 +91,10 @@ def simple_fibonacci(n, f1, f2): n -= 2 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 - return fn_1 + return fn_2 def matrix_exponentiation_time():