@@ -39,6 +39,21 @@ def modular_exponentiation(a, b):
39
39
40
40
41
41
def fibonacci_with_matrix_exponentiation (n , f1 , f2 ):
42
+ """
43
+ Returns the n number of the Fibonacci sequence that
44
+ start with f1 and f2
45
+ Use the matrix exponentiation
46
+ >>> fibonacci_with_matrix_exponentiation(1, 5, 6)
47
+ 5
48
+ >>> fibonacci_with_matrix_exponentiation(2, 10, 11)
49
+ 11
50
+ >>> fibonacci_with_matrix_exponentiation(13, 0, 1)
51
+ 144
52
+ >>> fibonacci_with_matrix_exponentiation(10, 5, 9)
53
+ 411
54
+ >>> fibonacci_with_matrix_exponentiation(9, 2, 3)
55
+ 89
56
+ """
42
57
# Trivial Cases
43
58
if n == 1 :
44
59
return f1
@@ -50,6 +65,21 @@ def fibonacci_with_matrix_exponentiation(n, f1, f2):
50
65
51
66
52
67
def simple_fibonacci (n , f1 , f2 ):
68
+ """
69
+ Returns the n number of the Fibonacci sequence that
70
+ start with f1 and f2
71
+ Use the definition
72
+ >>> simple_fibonacci(1, 5, 6)
73
+ 5
74
+ >>> simple_fibonacci(2, 10, 11)
75
+ 11
76
+ >>> simple_fibonacci(13, 0, 1)
77
+ 144
78
+ >>> simple_fibonacci(10, 5, 9)
79
+ 411
80
+ >>> simple_fibonacci(9, 2, 3)
81
+ 89
82
+ """
53
83
# Trivial Cases
54
84
if n == 1 :
55
85
return f1
@@ -61,10 +91,10 @@ def simple_fibonacci(n, f1, f2):
61
91
n -= 2
62
92
63
93
while n > 0 :
64
- fn_1 , fn_2 = fn_1 + fn_2 , fn_1
94
+ fn_2 , fn_1 = fn_1 + fn_2 , fn_2
65
95
n -= 1
66
96
67
- return fn_1
97
+ return fn_2
68
98
69
99
70
100
def matrix_exponentiation_time ():
0 commit comments