Skip to main content

RUSSIAN DOLL AND RECURSION TECHNIQUE

 

    There is one Russian wooden doll. A large doll.  If you open the head, a less large doll is found inside.  If you take out the second doll and open it, another small  doll  appears.  If you open the third doll, another smaller one is found.  This goes on up to seven or eight dolls.

     Suppose, you want to do some 'operation' with the dolls.  That is, you want to label each doll.  Take out all the dolls one by one.  Fix the label on the smallest one and put it inside doll which slightly bigger.  Label the second doll and repeat the operations till you label the biggest one.

     This operation is laborious to do.  But we can write the command for the operation concisely as given below.

Do
"label the doll and also label the doll inside"
Repeat
until no doll is found.

    There is a computer algorithm by name 'Recursion' similar to this concept.

Suppose, you want to sum the natural numbers from 1 to N.  You can write the command as follows.

Define sum(N) = 1+2+......+N
Hence we can write the computer command as: 

sum(N)= N+ sum (N-1)    if N is not equal to 0 

 When the computer encounters this command, it will magically sum the 1 to N numbers. Let us see how it works.

Key word sum appears both sides. Hence the statement will refer itself again and again.

   
Let N=10
So   sum(10)= 10 +sum (10-1)
but  sum (10-1)= sum(9)

The computer will interpret the sum(9) as
sum(9)= 9+sum (9-1)
Because of  back-reference  in the sum(N) command 

This will go on till N=0.  Now the computer has stripped down sum(10) command and reached the innermost command sum(1) .  Next the computer will execute the commands from sum(1) to sum(10)  (from bottom up) and get you the sum 55  That is it, you are the master and the computer is the slave.

    Recursion algorithm saves lot of memory space and speed up the execution.




     The recursion can be applied to factorial, searching.  find GCD, construct fractals etc.
Recursion is the important technique in the computer programming.

Comments

Popular posts from this blog

THE EARTH, A SUPER ORGANISM

     JOIN MY COURSE: "Become a programmer in a day with python"       A man called 'love lock' (what a name) proposed a theory called Gaia theory, named after Greek Goddess.      It says, "Earth is a self-regulating organism like a human being.  The organic life in it interacts with in-organic matter and maintains atmosphere, temperature and environment".  Hence the earth is still suitable for the life to thrive.      Imagine, in a particular place, there are lot of flowers.  Some flowers are white and some are darkly coloured.  We know, white reflects light and heat while dark absorbs the same.  White flowers can thrive in hot climate.  But dark flowers requires cold climate.  The absorption and reflection balances and the environment reaches average, warm temperature at which both the flowers can co-exist.  This is the essence of "Gaia" theory.      On our earth, ...

DISORDER IS THE "ORDER OF THE DAY"

         Imagine a balloon full of air.  The air molecules are moving randomly inside the balloon.  Let us pierce the balloon with a pin.  The air rushes out.  Why should not the air molecules stay inside the balloon safely and ignore the little hole?  That is not the way the world works.  The molecules always "want to occupy as many states as possible".  Hence the air goes out in the open to occupy more volume.   The things always goes into disorder (entropy) and the disorder increases with time.  The above statement is what we call "second law of thermodynamics".      Consider a cup of coffee on the table. Suppose the heat from entire room flows to your cup of coffee, the coffee will boil and the rest of the room will freeze.  Freezing means bringing things to order and arrangement.  It violates the second law.  Hence it will never happen.  Hence heat must flow from high ...

CASINO'S GAME

           Let us find out how the casino survives with mathematics.      Say, your friend invite you for a game of dice.  You must bet (wager) 2 dollars.  If you roll 'six' you will get back 8 dollars.  The game will go on for 30 rounds.  All sounds good.      The probability of rolling 'six' is 1/6.  Since the game will be played for 30 times, the 'expected win' is 30*1/6 = 5.  That is, you are expected to win 5 rounds out of 30.  Hence your gain will be 5 * 8 =40 dollars.  ok.  This also implies that you will loose 25 rounds.  Hence your loss will be 25*2 =50 dollars.  Your net gain will be gain-less = 40-50 = -10 dollars. For 30 rounds, the loss is -10 dollars, Hence, for one round =-10/30 = -1/3 dollars.  There will be a loss of -1/3 or 0.33 dollars per round.  It is not a fair game.     Let us make a simple formula to calculate  'Pa...