Tree Recursion

1 / 23

# Tree Recursion - PowerPoint PPT Presentation

Tree Recursion. Traditional Approach. Tree Recursion. Consider the Fibonacci Number Sequence: Time: 0 1 2 3 4 5 6 7 8 0, 1, 1, 2, 3, 5, 8, 13, 21, ... / 0 when n = 0 fib(n) = | 1 when n = 1 \ fib(n - 1) + fib(n - 2) otherwise. Tree Recursion (cont.). As code this is:

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Tree Recursion' - terrence

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Tree Recursion

Tree Recursion
• Consider the Fibonacci Number Sequence:

Time: 0 1 2 3 4 5 6 7 80, 1, 1, 2, 3, 5, 8, 13, 21, ...

/0when n = 0fib(n)= |1 when n = 1\fib(n - 1) + fib(n - 2)otherwise

Tree Recursion(cont.)
• As code this is:

int fib ( int n ) { if ( n <= 0 ) return 0; else if ( n = 1 ) return 1; else return fib ( n - 1 ) + fib ( n - 2 ) ; }

What happens when computing fib(5)?

fib(5)

int fib ( int n ) {

if ( n <= 0 ) return 0;

else if ( n = 1 ) return 1;

else return fib ( n - 1 ) + fib ( n - 2 ) ;

}

What happens when computing fib(5)?

fib(5)

int fib ( int n ) {

if ( n <= 0 ) return 0;

else if ( n = 1 ) return 1;

else return fib ( n - 1 ) + fib ( n - 2 ) ;

}

fib(3)

fib(4)

What happens when computing fib(5)?

fib(5)

int fib ( int n ) {

if ( n <= 0 ) return 0;

else if ( n = 1 ) return 1;

else return fib ( n - 1 ) + fib ( n - 2 ) ;

}

fib(3)

fib(4)

What happens when computing fib(5)?

fib(5)

int fib ( int n ) {

if ( n <= 0 ) return 0;

else if ( n = 1 ) return 1;

else return fib ( n - 1 ) + fib ( n - 2 ) ;

}

fib(3)

fib(4)

fib(3)

fib(2)

What happens when computing fib(5)?

fib(5)

int fib ( int n ) {

if ( n <= 0 ) return 0;

else if ( n = 1 ) return 1;

else return fib ( n - 1 ) + fib ( n - 2 ) ;

}

fib(3)

fib(4)

fib(3)

fib(2)

What happens when computing fib(5)?

fib(5)

int fib ( int n ) {

if ( n <= 0 ) return 0;

else if ( n = 1 ) return 1;

else return fib ( n - 1 ) + fib ( n - 2 ) ;

}

fib(3)

fib(4)

fib(3)

fib(2)

fib(2)

fib(1)

What happens when computing fib(5)?

fib(5)

int fib ( int n ) {

if ( n <= 0 ) return 0;

else if ( n = 1 ) return 1;

else return fib ( n - 1 ) + fib ( n - 2 ) ;

}

fib(3)

fib(4)

fib(3)

fib(2)

fib(2)

fib(1)

What is the Problem?
• I am explaining everything!
• Why not make this more interesting by using MS Agents
• Agents are helpers like the paper clip in Word
• But they are much more:
• They talk to you
• And can, in some cases, understand voice commands

Tree Recursion

MS Agent Approach

Tree Recursion
• Consider the Fibonacci Number Sequence:

Time: 0 1 2 3 4 5 6 7 8

0, 1, 1, 2, 3, 5, 8, 13, 21, ...

• This sequence is defined by the rule:

/0when n = 0

fib(n)= |1 when n = 1

\fib(n - 1) + fib(n - 2)otherwise

Tree Recursion(cont.)
• As code this is:

int fib ( int n ) {

if ( n <= 0 ) return 0;

else if ( n = 1 ) return 1;

else return fib ( n - 1 ) + fib ( n - 2 ) ;

}

What happens when computing fib(5)?

fib(5)

int fib ( int n ) {

if ( n <= 0 ) return 0;

else if ( n = 1 ) return 1;

else return fib ( n - 1 ) + fib ( n - 2 ) ;

}

What happens when computing fib(5)?

fib(5)

int fib ( int n ) {

if ( n <= 0 ) return 0;

else if ( n = 1 ) return 1;

else return fib ( n - 1 ) + fib ( n - 2 ) ;

}

fib(3)

fib(4)

What happens when computing fib(5)?

fib(5)

int fib ( int n ) {

if ( n <= 0 ) return 0;

else if ( n = 1 ) return 1;

else return fib ( n - 1 ) + fib ( n - 2 ) ;

}

fib(3)

fib(4)

What happens when computing fib(5)?

fib(5)

int fib ( int n ) {

if ( n <= 0 ) return 0;

else if ( n = 1 ) return 1;

else return fib ( n - 1 ) + fib ( n - 2 ) ;

}

fib(3)

fib(4)

fib(3)

fib(2)

What happens when computing fib(5)?

fib(5)

int fib ( int n ) {

if ( n <= 0 ) return 0;

else if ( n = 1 ) return 1;

else return fib ( n - 1 ) + fib ( n - 2 ) ;

}

fib(3)

fib(4)

fib(3)

fib(2)

What happens when computing fib(5)?

fib(5)

int fib ( int n ) {

if ( n <= 0 ) return 0;

else if ( n = 1 ) return 1;

else return fib ( n - 1 ) + fib ( n - 2 ) ;

}

fib(3)

fib(4)

fib(3)

fib(2)

fib(2)

fib(1)

MASH: Microsoft Agent Scripting Helper

MASH is an editor that allows you to construct

the scripts that you can then embed in other applications

MASH