Upload
leia
View
46
Download
0
Tags:
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
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 = 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 ) ;
}
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 ) ;
}
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 ) ;
}
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 ) ;
}
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 ) ;
}
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 ) ;
}
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 ) ;
}
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)?
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:
/ 0 when 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 ) ;
}
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 ) ;
}
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 ) ;
}
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 ) ;
}
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 ) ;
}
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 ) ;
}
MASH: Microsoft Agent Scripting Helper
MASH is an editor that allows you to constructthe scripts that you can then embed in other applications
MASH
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/