Skip to main content

The Way Recursion Works

Recursive function is the function that, as part of its execution, it invokes itself.

For example, if we at a function fact(n) that does factorial of number n.

   fact(1) = 1
   fact(2) =2 * 1
   fact(3) =3 * 2 * 1
   fact(4) =4 * 3 * 2 * 1
   fact(5) =5 * 4 * 3 * 2 * 1
   ......

We can define the above lines like this:

   fact(1) = 1
   fact(2) =2 * fact(1)
   fact(3) =3 * fact(2)
   fact(4) =4 * fact(3)
   fact(5) =5 * fact(4)
    ........

 So, we can say that,
  fact(n) = n * fact(n-1)   is the formula to find the factorial of any number.

Every recursive function has two parts:
Base Case: It terminates the recursive process.
Recursive Case: Where the recursion actually occurs. In other words, where it calls the function itself. From this case, the program keeps running, means it keeps calling the function.
To terminate the program from this state, we the base case. When, program faces the base case, it stops calling the function.

In this example for base case , we can assume when n is 1, it will return 1.
Else, it will recall the function and for this, we can plug the factorial calculation formula we found above.

Python code for factorial calculation is given below:


Let's take another example of finding the Fibonacci series:
In this example for base case , we can assume

fibonacci(1)==1 and fibonacci(0) == 0
 
Else, it will recall the function and for this,

fibonacci(5) = fibonacci(4) + fibonacci(3)

fibonacci(3) = fibonacci(2) + fibonacci(1)

fibonacci(4) = fibonacci(3) + fibonacci(2)

fibonacci(2) = fibonacci(1) + fibonacci(0)


So, we can say that,
fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)  is the formula to find Fibonacci series.

Now let's look at the python code for this:

 
GitHub Link for the code is here

Comments

Popular posts from this blog

Regularization in Deep Learning / Machine Learning - Prevent Overfitting

image source: mlexplained Overfittng happens in every machine learning (ML) problem.  Learning how to deal with overfitting is essential to mastering machine learning.  The fundamental issue in machine learning is the tension between optimization  and generalization. Optimization refers to the process of adjusting a model to get the  best performance possible on the training data (the learning in machine learning ),  whereas generalization refers to how well the trained model performs on data it has  never seen before . The goal of the game is to get good generalization, of course, but you don’t control generalization; you can only adjust the model based on its training  data.  The processing of fighting overfitting is a way  called regularization . [1].  How do you know whether a model is overfitting? The best initial method is to measure error on a training and test set. If you see a low error on the training set and...

A Brief Overview of GPT-3 by OpenAI

    You have probably already seen some articles like "A robot wrote an entire article. Aren't you scared yet, human?" So, who is the robot here?    It's GPT-3 model. It's a transformer based language model. The full form of GPT is Generative Pre-trained Transformers. This model is developed by OpenAI. There were GPT-2 and other models released by OpenAI previously. GPT-3 was released in May 2020. GPT-3 is more robust than its predecessors. Though architecturally it doesn't have that mush difference.   GPT-3 can write articles, poems, and even working code for you*, given some context. There are some limitations which I am going explain later in this article. It's a language model means given a text, it probabilistically predicts what tokens from a known vocabulary will come next in that string. So, it's sort of a autocomplete that we see on a phone keyboard. We type a word, and then the keyboard suggests another word that can come next. What sets GPT...

Lambda, Map, and Filter in Python

Lambda: Lambda functions are known as the anonymous functions in Python. This kind of functions are declared without any name. Can accept any number of argument.  Restricted to only a single expression.  Used only one-time. Lambda function is used when you need a function for a short period of time.  Basic syntax:  lambda arguments : expression Example: Map: Map is a built-in function that takes a function object and iterable list (list/dictionary) as its parameter. Basic syntax: map (function_object, iterable_1, iterable_2, ... ) Few examples of Map in python: Filter: It works similar way like map. The difference is it makes a new list from the element in the list that satisfy some condition . In case of of parameters, it takes a function and one iterable. Basic syntax: filter (function, iterable) Normally used with lambda functions. Example is given below: