Date post: | 22-Dec-2015 |
Category: |
Documents |
View: | 253 times |
Download: | 0 times |
1
Section 3.4
Recursive Definitions
2
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
3
Recursively Defined Functions
• Specify f(0)
• Give a rule for finding f from f’s value at smaller integers
4
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
5
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
6
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
7
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
8
Example 5: summation• Give a recursive definition of:
n
akk=0
• Basis: n
ak = a0k=0
• Inductive:n+1 n
ak = an+1 + ak k=0 k=0
9
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
10
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.
11
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
12
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
13
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
14
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
15
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)
16
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
17
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
18
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
19
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
20
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
21
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
22
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
23
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
24
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
25
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
26
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
27
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
28
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)
29
Section 3.3
Recursive Definitions
- ends -