290 likes | 571 Views
Section 3.4. Recursive Definitions. Recursion. Recursion is the process of defining an object in terms of itself Technique can be used to define sequences, functions and sets To recursively define a sequence: give first term give rule for defining subsequent terms from previous terms.
E N D
Section 3.4 Recursive Definitions
Recursion • Recursion is the process of defining an object in terms of itself • Technique can be used to define sequences, functions and sets • To recursively define a sequence: • give first term • give rule for defining subsequent terms from previous terms
Recursively Defined Functions • Specify f(0) • Give a rule for finding f from f’s value at smaller integers
Example 1 • Define f recursively by: f(0) = 3 f(n+1) = 2(f(n)) + 3 • Find f(1), f(2), f(3) and f(4) f(1) = 2(f(0)) + 3 = 9 f(2) = 2(f(1)) + 3 = 21 f(3) = 2(f(2)) + 3 = 45 f(4) = 2(f(3)) + 3 = 93
Example 2: give a recursive definition of the factorial function • Define f(0): f(0) = 1 • Define rule for f(n+1) from f(n): • Since (n+1)! = n!(n+1) • then f(n+1) = (n+1)(f(n)) • For example, to find f(5) = 5! Do: f(5) = 5(f(4)) = 5(4(f(3))) = 5(4(3(f(2)))) = 5(4(3(2(f(1))))) = 5(4(3(2(1(f(0))))))) = 5*4*3*2*1*1 = 120
Example 3 • Give recursive definition for the sum of the first n positive integers • Define f(0) = 0 • Then f(n+1) = n+1+f(n) • Thus f(4), for example, is: 4+f(3) = 4+3+f(2) = 4+3+2+f(1) = 4+3+2+1+f(0) = 4+3+2+1+0 = 10
Example 4 • Give recursive definition of an where a is a non-zero real number and n is a non-negative integer • Define a0 = 1 • Then define an+1 = a(an) • So x5 = x(x4) = x(x(x3)) = x(x(x(x2))) = x(x(x(x(x1)))) = x(x(x(x(x(x0) = x*x*x*x*x*1
Example 5: summation • Give a recursive definition of: n ak k=0 • Basis: n ak =a0 k=0 • Inductive: n+1 n ak = an+1 + ak k=0 k=0
Example 6 • Give recursive definition of Pm(n), product of integer m and non-negative integer n • Basis: Pm(0) = 0 • Inductive: Pm(n+1) = Pm(n) + m • So, for example, 4*3 = P4(3) = P4(2)+4 = P4(1)+4+4 = P4(0)+4+4+4 = 0+4+4+4 = 12
Fibonacci numbers • Fibonacci numbers are defined by: f0 = 0, f1 = 1, fn = fn-1 + fn-2 where n=2,3,4 … So f2 = f1 + f0 = 1 f3 = f2 + f1 = 2 f4 = f3 + f2 = 3 f5 = f4 + f3 = 5 f6 = f5 + f4 = 8 etc.
Example 7: Fibonacci numbers • The recursive definition of Fibonacci numbers can be used to prove many properties of these numbers. For example: fn > n-2 where = (1 + 5) / 2 whenever n 3 Let P(n) = fn > n-2 ; we wish to show that P(n) is true for n 3
Example 7 • Note that: < 2, 2 = f3 (f3 > 3-2) 2 = ((1+5)/2)((1+5)/2) = (1+25+5)/4 = (2(5+3))/(2*2) = (3 + 5) / 2 (3 + 5) / 2 < 3, 3 = f4 (f4 > 4-2) • So P(n) is true for n=3 and n=4
Example 7 • Assume P(k) is true, so fk > k-2 for all integers k with 3 <= k <= n, with n 4 • Show P(n+1) is true: fn+1 > n-1 • By the quadratic formula: x=(-bb2-4ac)/2a is a solution for x2-x-1=0 so 2 = + 1
Example 7 • Thus, n-1 = 2(n-3) = (+1) n-3 = (n-3) +1(n-3) = (n-2 + n-3) • By the inductive hypothesis, if n5, it follows that fn-1 > n-3, fn > n-2 • So we have: fn+1 = (fn + fn-1) > (n-2 + n-3) = n-1, completing the proof
Example 8 • Prove that f1+f3+ … +f2n-1 = f2n whenever n is a positive integer • Basis: f1 = f2*1 true, since f1 = f2 = 1 • We want to prove: f1+f3+ … f2n-1+f2n+1=f2(n+1)
Example 8 • Assume P(n) is true; then: f1+f3+ … f2n-1+f2n+1 = f2n + f2(n+1) f2n + f2(n+1) = f2n+2 • Recall the definition of Fibonacci numbers: fn = fn-1 + fn-2 • So the theorem is true
Recursively defined sets • Sets may be recursively defined as follows: • an initial collection of elements is given • rules used to construct elements of the set from other elements are given • Such sets are well-defined, and theorems about them can be proved using their recursive definitions
Example 9 • S is recursively defined by: 3 S (x+y) S if x S and y S • Show that S is the set of all positive integers divisible by 3
Example 9: Proof • Let A = {x | x is divisible by 3} (or, x=3n) • To prove A=S, show that AS and SA • Proving AS by mathematical induction: • P(n): 3n belongs to S • Basis: 3*1 S - true by definition of S • Inductive: Since we already know 3 S (by definition), and (3n+3) S (also by definition) and 3n+3 = 3(n+1), AS is proven
Example 9: Proof • To prove SA, use recursive definition of S: • Basis: 3 S (by definition) • Since 3 = 3*1, all elements specified by the definition’s basis step are divisible by 3 • To complete proof, must show all integers generated by using second part of definition of S are in A
Example 9: Proof • To do this, show that x+y is in A when xS and yS and xA and yA • If x A and y A, 3|x and 3|y - so 3|(x+y) • This completes the proof
Well-formed Formulae • Common application of the recursive definition of sets • Example: well-formed formulae of variables, numerals and operators from {+,-,*,/,} are defined by: • x is a well-formed formula is x is a numeral or variable; • (f+g), (f-g), (f*g), (f/g) and (fg) are well-formed formulae if f and g are well-formed formulae
Application of well-formed formulae • Using this definition, we can define any infix expression • For example, x and 5 are well-formed formulae • So (x+5), (x*5), etc. are well-formed formulae • And (x+5) / (x*5) is a well-formed formula
Example 10 • Well-formed formulae for compound propositions involving T, F, variables and operators {,,,,} are defined by: • T, F and p (where p is a propositional variable) are well-formed formulae; • (p), (p q), (p q), (p q), (p q) are well-formed formulae is p and q are well-formed • Thus, we could build any compound propositional expression in the same way as with infix arithmetic expressions
Recursive definition of strings • The set * of strings over the alphabet can be recursively defined by: • * where is the empty string and • wx * whenever w * and x • Translation: • empty strings belong to the set of strings • can produce new strings by concatenating strings from the set of strings with symbols from the alphabet
Recursive definition of strings • Can also recursively define the length of strings; if l(w) is the length of string w, then: • l() = 0 • l(wx) = l(w)+1 if w * and x • Can use these definitions in proofs
Example 11 • Prove that l(xy) = l(x) + l(y) where x * and y * • Basis: P() • show l(x) = l(x)+l() for x* • since l() = 0, l(x)+l() = l(x), so l(x) is true
Example 11 • Inductive step: • Assume P(y) is true; show that this implies P(ya) is true where a • Need to show l(xya) = l(x) + l(ya) • By recursive definition of l(w), we have l(xya)=l(xy+1) and l(ya) = l(y)+1 • By inductive hypothesis, l(xy)=l(x)+l(y) • So we conclude l(xya)=l(x)+l(y)+1 = l(x)+l(ya)
Section 3.3 Recursive Definitions - ends -