230 likes | 423 Views
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:
E N D
Tree Recursion Traditional Approach
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 happens when computing fib(5)? 5 2 3 2 1 1 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0
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
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/