We are given a recursive function that describes Nth terms in form of other terms. In this article we have taken specific example.
Now you are given n, and you have to find out nth term using above formula.
Input : n = 2 Output : 5 Input : n = 3 Output :13
Basic Approach:This problem can be solved by simply just iterating over the n terms. Every time you find a term, using this term find next one and so on. But time complexity of this problem is of order O(n).
All such problem where a term is a function of other terms in linear fashion. Then these can be solved using Matrix (Please refer : Matrix Exponentiation ). First we make transformation matrix and then just use matrix exponentiation to find Nth term.
Step by Step method includes:
Step 1. Determine k the number of terms on which T(i) depends.
In our example T(i) depends on two terms.so, k = 2
Step 2. Determine initial values
As in this article T0=1, T1=1 are given.
Step 3. Determine TM, the transformation matrix.
This is the most important step in solving recurrence relation. In this step, we have to make matrix of dimension k*k.
T(i)=TM*(initial value vector)
Here initial value vector is vector that contains intial value.we name this vector as initial.
Below is the program to implement above approach
Time Complexity : O(Log n)
The same idea is used to find n-th Fibonacci number in O(Log n)
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price.