Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE 311 Foundations of Computing I Lecture 15 Recursive Definitions and Structural Induction Autumn 2011 CSE 3111.

Similar presentations


Presentation on theme: "CSE 311 Foundations of Computing I Lecture 15 Recursive Definitions and Structural Induction Autumn 2011 CSE 3111."— Presentation transcript:

1 CSE 311 Foundations of Computing I Lecture 15 Recursive Definitions and Structural Induction Autumn 2011 CSE 3111

2 Announcements Reading assignments – Today: 5.3 7 th Edition 4.3 6 th Edition 3.4 5 th Edition (not all there) Midterm Friday, Nov 4 – Closed book, closed notes – Sample midterm questions available on website – Extra office hours Thursday, times TBA Autumn 2011CSE 3112

3 Highlights from last lecture Strong Induction Strong Induction proof layout: 1.By induction we will show that P(n) is true for every n≥0 2.Base Case: Prove P(0) 3.Inductive Hypothesis: Assume that for some arbitrary integer k ≥ 0, P(j) is true for every j from 0 to k 4.Inductive Step: Prove that P(k+1) is true using Inductive Hypothesis that P(j) is true for all values  k 5.Conclusion: Result follows by induction P(0)  k ((P(0)  P(1)  P(2)  …  P(k))  P(k+1))   n P(n)

4 Fibonacci Numbers f 0 = 0; f 1 = 1; f n = f n-1 + f n-2

5 Bounding the Fibonacci Numbers Theorem: 2 n/2-1  f n  2 n for n  2

6 Fibonacci numbers and the running time of Euclid’s algorithm Theorem: Suppose that Euclid’s algorithm takes n steps for gcd(a,b) with a>b, then a ≥ f n+1 so a ≥ 2 (n-1)/2 – # of steps at most twice # of bits of a Set r n+1 =a, r n =b then Euclid’s alg. computes r n+1 = q n r n + r n-1 r n = q n-1 r n-1 + r n-2 ●●● r 3 = q 2 r 2 + r 1 r 2 = q 1 r 1 Autumn 2011CSE 3116 each quotient q i ≥ 1 r 1 ≥ 1

7 Recursive Definitions of Sets Recursive definition – Basis step: 0  S – Recursive step: if x  S, then x + 2  S – Exclusion rule: Every element in S follows from basis steps and a finite number of recursive steps

8 Recursive definitions of sets Basis: 6  S; 15  S; Recursive: if x, y  S, then x + y  S; Basis: [1, 1, 0]  S, [0, 1, 1]  S; Recursive: if [x, y, z]  S,  in R, then [  x,  y,  z]  S if [x 1, y 1, z 1 ], [x 2, y 2, z 2 ]  S then [x 1 + x 2, y 1 + y 2, z 1 + z 2 ]  S Powers of 3

9 Recursive Definitions of Sets: General Form Recursive definition – Basis step: Some specific elements are in S – Recursive step: Given some existing named elements in S some new objects constructed from these named elements are also in S. – Exclusion rule: Every element in S follows from basis steps and a finite number of recursive steps

10 Structural Induction: proving properties of recursively defined sets How to prove  x ∈ S. P(x) is true: Base Case: Show that P is true for all specific elements of S mentioned in the Basis step Inductive Hypothesis: Assume that P is true for some arbitrary values of each of the existing named elements mentioned in the Recursive step Inductive Step: Prove that P holds for each of the new elements constructed in the Recursive step using the named elements mentioned in the Inductive Hypothesis Conclude that  x ∈ S. P(x) Autumn 2011CSE 31110

11 Structural Induction versus Ordinary Induction Ordinary induction is a special case of structural induction: – Recursive Definition of ℕ Basis: 0 ∈ ℕ Recursive Step: If k ∈ ℕ then k+1 ∈ ℕ Structural induction follows from ordinary induction Let Q(n) be true iff for all x ∈ S that take n Recursive steps to be constructed, P(x) is true. Autumn 2011CSE 31111

12 Using Structural Induction Let S be given by – Basis: 6  S; 15  S; – Recursive: if x, y  S, then x + y  S. Claim: Every element of S is divisible by 3 Autumn 2011CSE 31112

13 Strings An alphabet  is any finite set of characters. The set  * of strings over the alphabet  is defined by – Basis:  S ( is the empty string) – Recursive: if w   *, x  , then wx   *

14 Function definitions on recursively defined sets Len( ) = 0; Len(wx) = 1 + Len(w); for w   *, x   Concat(w, ) = w for w   * Concat(w 1, w 2 x ) = Concat(w 1, w 2 )x for w 1, w 2 in  *, x  


Download ppt "CSE 311 Foundations of Computing I Lecture 15 Recursive Definitions and Structural Induction Autumn 2011 CSE 3111."

Similar presentations


Ads by Google