23
Tree Recursion Traditional Approach

Tree Recursion

  • Upload
    leia

  • View
    46

  • Download
    0

Embed Size (px)

DESCRIPTION

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: - PowerPoint PPT Presentation

Citation preview

Page 1: Tree Recursion

Tree Recursion

Traditional Approach

Page 2: Tree Recursion

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 = 0fib(n) = | 1 when n = 1

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

Page 3: Tree Recursion

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 )

; }

Page 4: Tree Recursion

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 ) ;

}

Page 5: Tree Recursion

fib(5)

fib(4) fib(3)

What happens when computing 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 ) ;

}

Page 6: Tree Recursion

fib(5)

fib(4) fib(3)

What happens when computing 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 ) ;

}

Page 7: Tree Recursion

fib(5)

fib(4) fib(3)

fib(3) fib(2)

What happens when computing 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 ) ;

}

Page 8: Tree Recursion

fib(5)

fib(4) fib(3)

fib(3) fib(2)

What happens when computing 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 ) ;

}

Page 9: Tree Recursion

fib(5)

fib(4) fib(3)

fib(3) fib(2)

fib(2) fib(1)

What happens when computing 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 ) ;

}

Page 10: Tree Recursion

fib(5)

fib(4) fib(3)

fib(3) fib(2)

fib(2) fib(1)

What happens when computing 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 ) ;

}

Page 11: Tree Recursion

5

3 2

2 1 1 1

1 1 1 0 1 0

1 0

1

1 1 1

1

0

0 0

What happens when computing fib(5)?

Page 12: Tree Recursion

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

Page 13: Tree Recursion

Tree Recursion

MS Agent Approach

Page 14: Tree Recursion

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:

/ 0 when n = 0

fib(n) = | 1 when n = 1

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

Page 15: Tree Recursion

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 ) ;

}

Page 16: Tree Recursion

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 ) ;

}

Page 17: Tree Recursion

fib(5)

fib(4) fib(3)

What happens when computing 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 ) ;

}

Page 18: Tree Recursion

fib(5)

fib(4) fib(3)

What happens when computing 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 ) ;

}

Page 19: Tree Recursion

fib(5)

fib(4) fib(3)

fib(3) fib(2)

What happens when computing 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 ) ;

}

Page 20: Tree Recursion

fib(5)

fib(4) fib(3)

fib(3) fib(2)

What happens when computing 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 ) ;

}

Page 21: Tree Recursion

fib(5)

fib(4) fib(3)

fib(3) fib(2)

fib(2) fib(1)

What happens when computing 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 ) ;

}

Page 22: Tree Recursion

MASH: Microsoft Agent Scripting Helper

MASH is an editor that allows you to constructthe scripts that you can then embed in other applications

MASH

Page 23: Tree Recursion

Where to Learn More

• MS Agent Page: http://msdn.microsoft.com/workshop/imedia/agent/default.asp

• Sunfires MS Agent Page: http://www.angelfire.com/il2/sunfire/index.html

• Uniquities MS Agent Planet: http://www.uniquities.co.uk/whatsnew.htm

• Presentation Narrator: http://msdn.microsoft.com/workshop/imedia/agent/sampleoffice.asp

• Microsoft Agent Scripting Helper:http://www.bellcraft.com/mash/