0% found this document useful (0 votes)
15 views

Unit 3 Part 2

flat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views

Unit 3 Part 2

flat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 79

Induction and recursion

Chapter 5

With Question/Answer
Animations

Copyright © McGraw-Hill Education. All rights reserved. No reproduction or distribution without the prior written consent of McGraw-Hill Education.
Chapter Summary
Mathematical Induction
Strong Induction
Well-Ordering
Recursive Definitions
Structural Induction
Recursive Algorithms
Program Correctness (not yet included in
overheads)
Mathematical Induction
Section 5.1
Section Summary
Mathematical Induction
Examples of Proof by Mathematical Induction
Mistaken Proofs by Mathematical Induction
Guidelines for Proofs by Mathematical
Induction
Climbing an
Infinite Ladder
Suppose we have an infinite ladder:
1. We can reach the first rung of the ladder.
2. If we can reach a particular rung of the ladder,
then we can reach the next rung.

From (1), we can reach the first rung.


Then by applying (2), we can reach the
second rung. Applying (2) again, the
third rung. And so on. We can apply (2)
any number of times to reach any
particular rung, no matter how high up.
This example motivates proof by
mathematical induction.
Principle of Mathematical Induction
Principle of Mathematical Induction: To prove that P(n) is true
for all positive integers n, we complete two steps:

Inductive Step: Show that the conditional statement P(k) → P(k + 1)


 Basis Step: Show that P(1) is true.

is true for all positive integers k.
To complete the inductive step, assuming the inductive

must P(k + 1) be true.


hypothesis that P(k) holds for an arbitrary integer k, show that

Climbing an Infinite Ladder Example:


 BASIS STEP: By (1), we can reach rung 1.

reach rung k. Then by (2), we can reach rung k + 1.


 INDUCTIVE STEP: Assume the inductive hypothesis that we can

Hence, P(k) → P(k + 1) is true for all positive integers k. We can


reach every rung on the ladder.
Important Points about using
Mathematical Induction
Mathematical induction can be expressed as the

(P(1) ∧ ∀k (P(k) → P(k + 1))) → ∀n P(n),


rule of inference

where the domain is the set of positive integers.


In a proof by mathematical induction, we don’t
assume that P(k) is true for all positive integers! We

P(k + 1) must also be true.


show that if we assume that P(k) is true, then

start at the integer 1. In such a case, the basis step


Proofs by mathematical induction do not always

begins at a starting point b where b is an integer.


Validity of Mathematical Induction
 Mathematical induction is valid because of the well ordering property,

has a least element (see Section 5.2 and Appendix 1). Here is the proof:
which states that every nonempty subset of the set of positive integers

 Suppose that P(1) holds and P(k) → P(k + 1) is true for all positive
integers k.
 Assume there is at least one positive integer n for which P(n) is false.
Then the set S of positive integers for which P(n) is false is nonempty.

 We know that m can not be 1 since P(1) holds.


 By the well-ordering property, S has a least element, say m.

 Since m is positive and greater than 1, m − 1 must be a positive


integer. Since m − 1 < m, it is not in S, so P(m − 1) must be true.
 But then, since the conditional P(k) → P(k + 1) for every positive
integer k holds, P(m) must also be true. This contradicts P(m) being
false.
 Hence, P(n) must be true for every positive integer n.
Remembering How Mathematical
Induction Works

Consider an infinite We know that the first


sequence of domino is knocked down,

1,2,3, …, where each


dominoes, labeled i.e., P(1) is true .

domino is standing. We also know that if


Let P(n) be the whenever the kth domino is

over the (k + 1)st domino,


proposition that knocked over, it knocks

i.e, P(k) → P(k + 1) is true


the nth domino is
knocked over.
for all positive integers k.
Hence, all dominos are knocked
over.

P(n) is true for all positive


integers n.
Proving a Summation Formula by
Mathematical Induction
Note: Once we have
Example: Show that: this conjecture,
mathematical
Solution:
BASIS STEP: P(1) is true since 1(1 + 1)/2 = 1.
induction can be used
to prove it correct.

INDUCTIVE STEP: Assume true for P(k).


The inductive hypothesis is
Under this assumption,
Conjecturing and Proving Correct a
Summation Formula
Example: Conjecture and prove correct a formula for the sum of the first n positive odd

Solution: We have: 1= 1, 1 + 3 = 4, 1 + 3 + 5 = 9, 1 + 3 + 5 + 7 = 16, 1 + 3 + 5 + 7


integers. Then prove your conjecture.

+ 9 = 25.
1 + the
 We can conjecture that 3 +sum
5 +of
∙∙∙+
the (2n −positive
first n 1) + (2n + integers
odd 1) =n2 .is n2,

 BASIS STEP: P(1) is true since 12 = 1.


 We prove the conjecture is proved correct with mathematical induction.

 INDUCTIVE STEP: P(k) → P(k + 1) for every positive integer k.


Inductive Hypothesis: 1 + 3 + 5 + ∙∙∙+ (2k −
1) =k
Assume the inductive 2
hypothesis holds and then show that P(k + 1) holds has well.

1 + 3 + 5 + ∙∙∙+ (2k − 1) + (2k + 1) =[1 + 3 + 5 + ∙∙∙+ (2k − 1)] + (2k + 1)


= k2 + (2k + 1) (by the inductive
hypothesis)
 So, assuming P(k), it follows that:

= k2 + 2k + 1
= (k + 1) 2

 Hence, we have shown that P(k + 1) follows from P(k). Therefore the sum of the first n
positive odd integers is n2.
Proving Inequalities
n < 2n for all positive integers
Example: Use mathematical induction to
prove that
n.

< 2n.
Solution: Let P(n) be the proposition that n

BASIS STEP: P(1) is true since 1 < 21 = 2.

2k, for an arbitrary positive integer k.


INDUCTIVE STEP: Assume P(k) holds, i.e., k <

Must show that P(k + 1) holds. Since by the


inductive hypothesis, k < 2k, it follows that:
k + 1 < 2k + 1 ≤ 2k + 2k = 2 ∙ 2k = 2k+1
n
Proving Inequalities
that 2n < n!, for every integer n ≥ 4.
Example: Use mathematical induction to prove

Solution: Let P(n) be the proposition that 2n < n!.


 BASIS STEP: P(4) is true since 24 = 16 < 4! = 24.
 INDUCTIVE STEP: Assume P(k) holds, i.e., 2k < k!
for an arbitrary integer k ≥ 4. To show that P(k + 1)

2k+1 = 2∙2k
holds:

< 2∙ k!
< (k + 1)k!
(by the inductive hypothesis)

= (k + 1)!
Note that here2the
Therefore, n
<basis step is for
n! holds, P(4),every
since P(0), ≥ 4. and
P(1),nP(2),
integer
P(3) are all false.
Proving Divisibility Results
Example: Use mathematical induction to prove that n3 − n is
divisible by 3, for every positive integer n.
Solution: Let P(n) be the proposition that n3 − n is divisible by
3.
 BASIS STEP: P(1) is true since 13 − 1 = 0, which is divisible by 3.
 INDUCTIVE STEP: Assume P(k) holds, i.e., k3 − k is divisible by 3,
for an arbitrary positive integer k. To show that P(k + 1) follows:
(k + 1)3 − (k + 1) = (k3 + 3k2 + 3k + 1) − (k + 1)
= (k3 − k) + 3(k2 + k)
By the inductive hypothesis, the first term (k3 − k) is divisible by 3
and the second term is divisible by 3 since it is an integer
multiplied by 3. So by part (i) of Theorem 1 in Section 4.1 , (k + 1)3
− (k + 1) is divisible by 3.
Therefore, n3 − n is divisible by 3, for every integer positive integer
n.
Number of Subsets of a Finite Set
Example: Use mathematical induction to
show that if S is a finite set with n elements,

2n subsets.
where n is a nonnegative integer, then S has

(Chapter 6 uses combinatorial methods to prove this


result.)

set with n elements has 2n subsets.


Solution: Let P(n) be the proposition that a

has only itself as a subset and 20 = 1.


Basis Step: P(0) is true, because the empty set

Inductive Step: Assume P(k) is truecontinued


for an
arbitrary nonnegative integer k. →
Number of Subsets of a Finite Set
integer k, every set with k elements has 2k subsets.
Inductive Hypothesis: For an arbitrary nonnegative

Let T be a set with k + 1 elements. Then T = S ∪ {a}, where a ∈


T and S = T − {a}. Hence |S| = k.

X ∪ {a}.
 For each subset X of S, there are exactly two subsets of T, i.e., X
and

 By the inductive hypothesis S has 2k subsets. Since there are

2 ∙2k = 2k+1 .
two subsets of T for each subset of S, the number of subsets of T
is
Tiling Checkerboards
Example: Show that every 2n ×2n checkerboard with one square removed
can be tiled using right triominoes.

A right triomino is an L-shaped tile which


covers three squares at a time.
Solution: Let P(n) be the proposition that every 2n ×2n checkerboard with
one square removed can be tiled using right triominoes. Use mathematical
induction to prove that P(n) is true for all positive integers n.
 BASIS STEP: P(1) is true, because each of the four 2 ×2 checkerboards with
one square removed can be tiled using one right triomino.

 INDUCTIVE STEP: Assume that P(k) is true for every 2k ×2k checkerboard, for
some positive integer k.


continued
Tiling Checkerboards
Inductive Hypothesis: Every 2k ×2k checkerboard,
for some positive integer k, with one square removed
can be tiled using right triominoes.

Consider a 2k+1 ×2k+1 checkerboard with one square removed. Split this checkerboard into
four checkerboards of size 2k ×2k,by dividing it in half in both directions.

 Remove a square from one of the four 2k ×2k checkerboards. By the inductive hypothesis, this
board can be tiled. Also by the inductive hypothesis, the other three boards can be tiled with
the square from the corner of the center of the original board removed. We can then cover

Hence, the entire 2k+1 ×2k+1 checkerboard with one square removed can be tiled using right
the three adjacent squares with a triominoe.

triominoes.
An Incorrect “Proof” by Mathematical
Induction
Example: Let P(n) be the statement that every set of n
lines in the plane, no two of which are parallel, meet in a

positive integers n ≥ 2.
common point. Here is a “proof” that P(n) is true for all

 BASIS STEP: The statement P(2) is true because any two lines
in the plane that are not parallel meet in a common point.

that P(k) is true for the positive integer k ≥ 2, i.e., every set
 INDUCTIVE STEP: The inductive hypothesis is the statement

of k lines in the plane, no two of which are parallel, meet in a

 We must show that if P(k) holds, then P(k + 1) holds, i.e., if


common point.

k ≥ 2, meet in a common point, then every set of k + 1 lines in


every set of k lines in the plane, no two of which are parallel,

the plane, no two of which are parallel, meet in a common


point.

continued
An Incorrect “Proof” by Mathematical
Induction
plane, where k ≥ 2, no two of which are parallel,
Inductive Hypothesis: Every set of k lines in the

 Consider a set of k + 1 distinct lines in the plane, no two parallel. By the


meet in a common point.
inductive hypothesis, the first k of these lines must meet in a common point
p1. By the inductive hypothesis, the last k of these lines meet in a common
point p2.
 If p1 and p2 are different points, all lines containing both of them must be the

that the lines are distinct. Hence, p1 = p2 lies on all k + 1 distinct lines, and
same line since two points determine a line. This contradicts the assumption

therefore P(k + 1) holds. Assuming that k ≥2, distinct lines meet in a


common point, then every k + 1 lines meet in a common point.
 There must be an error in this proof since the conclusion is absurd. But
where is the error?
 Answer: P(k)→ P(k + 1) only holds for k ≥3. It is not the case that P(2) implies P(3).
The first two lines must meet in a common point p1 and the second two must meet in a
common point p2. They do not have to be the same point since only the second line is
common to both sets of lines.
Guidelines:
Mathematical Induction Proofs
Q. Let P(n) be the statement that 12 + 22 +· · ·+n2
=
n(n + 1)(2n + 1)/6 for the positive integer n.
a) What is the statement P(1)? 12 = 1 · 2 · 3/6 = 1
b) Show that P(1) is true, completing the basis step of the proof.
Both sides of P(1) shown in part (a) equal 1.
c) What is the inductive hypothesis?
12 + 22 + · · · + k2 = k(k + 1)(2k + 1)/6
d) What do you need to prove in the inductive step?
For each k ≥ 1 that P(k) implies P(k + 1); in
other words, that assuming the inductive
hypothesis [see part (c)] we can show
12 + 22 + · · · + k2 + (k + 1)2 = (k + 1)(k + 2)(2k
+ 3)/6
e) Complete the inductive step, identifying where you use the
inductive hypothesis.
(12 + 22 + · · · + k2) + (k + 1)2 = [k(k + 1)(2k
+1)/6] + (k + 1)2 = [(k + 1)/6][k(2k + 1) +
6(k +1)]
= [(k + 1)/6](2k2 + 7k + 6)
= [(k + 1)/6](k +2)(2k+3)
= (k+1)(k+2)(2k+3)/6
f) Explain why these steps show that this formula is true
whenever n is a positive integer.
We have completed both the basis step and the
inductive step, so by the principle of
mathematical induction, the statement is true for
every positive integer n.
Strong Induction and
Well-Ordering
Section 5.2
Section Summary
Strong Induction
Example Proofs using Strong Induction
Using Strong Induction in Computational
Geometry (not yet included in overheads)
Well-Ordering Property
Strong Induction
Strong Induction: To prove that P(n) is true
for all positive integers n, where P(n) is a
propositional function, complete two steps:
Basis Step: Verify that the proposition P(1) is
true.

[P(1) ∧ P(2) ∧∙∙∙ ∧ P(k)] → P(k + 1)


Inductive Step: Show the conditional statement

holds for all positive integers k.


Strong Induction is sometimes called the second principle of
mathematical induction or complete induction.
Strong Induction and
the Infinite Ladder
Strong induction tells us that we can reach all
rungs if:
1. We can reach the first rung of the ladder.

rungs, then we can reach the (k + 1)st rung.


2. For every integer k, if we can reach the first k

To conclude that we can reach every rung by


strong induction:

• INDUCTIVE STEP: Assume P(1) ∧ P(2) ∧∙∙∙


• BASIS STEP: P(1) holds

∧ P(k)
holds for an arbitrary integer k, and show
that
P(k + 1) must also hold.
We will have then shown by strong induction
that for every positive integer n, P(n) holds,
i.e., we can
reach the nth rung of the ladder.
Completion of the proof of the
Fundamental Theorem of Arithmetic
Example: Show that if n is an integer greater than 1, then n can
be written as the product of primes.
Solution: Let P(n) be the proposition that n can be written as a
product of primes.
 BASIS STEP: P(2) is true since 2 itself is prime.

integers j with 2 ≤ j ≤ k. To show that P(k + 1) must be true under


 INDUCTIVE STEP: The inductive hypothesis is P(j) is true for all

this assumption, two cases need to be considered:


If k + 1 is prime, then P(k + 1) is true.
Otherwise, k + 1 is composite and can be written as the product of two

positive integers a and b with 2 ≤ a ≤ b < k + 1. By the inductive


hypothesis a and b can be written as the product of primes and therefore


k + 1 can also be written as the product of those primes.
Hence, it has been shown that every integer greater than 1 can
be written as the product of primes.
Proof using Strong Induction
Example: Prove that every amount of postage of 12 cents or more
can be formed using just 4-cent and 5-cent stamps.

be formed using 4-cent and 5-cent stamps.


Solution: Let P(n) be the proposition that postage of n cents can

 BASIS STEP: P(12), P(13), P(14), and P(15) hold.


 P(12) uses three 4-cent stamps.

 P(13) uses two 4-cent stamps and one 5-cent stamp.

 P(14) uses one 4-cent stamp and two 5-cent stamps.

 P(15) uses three 5-cent stamps.

for 12 ≤ j ≤ k, where k ≥ 15. Assuming the inductive hypothesis, it


 INDUCTIVE STEP: The inductive hypothesis states that P(j) holds

can be shown that P(k + 1) holds.


 Using the inductive hypothesis, P(k − 3) holds since k − 3 ≥ 12. To
form postage of k + 1 cents, add a 4-cent stamp to the postage for k
− 3 cents.
Hence, P(n) holds for all n ≥ 12.
Proof of Same Example using
Mathematical Induction
Example: Prove that every amount of postage of 12 cents or
more can be formed using just 4-cent and 5-cent stamps.

can be formed using 4-cent and 5-cent stamps.


Solution: Let P(n) be the proposition that postage of n cents

 BASIS STEP: Postage of 12 cents can be formed using three 4-cent


stamps.

integer k is that postage of k cents can be formed using 4-cent and


 INDUCTIVE STEP: The inductive hypothesis P(k) for any positive

5-cent stamps. To show P(k + 1) where k ≥ 12 , we consider two


cases:
If at least one 4-cent stamp has been used, then a 4-cent stamp can be
replaced with a 5-cent stamp to yield a total of k + 1 cents.

Otherwise, no 4-cent stamp have been used and at least three 5-cent
stamps were used. Three 5-cent stamps can be replaced by four 4-cent

stamps to yield a total of k + 1 cents.


Hence, P(n) holds for all n ≥ 12.
Well-Ordering Property
Well-ordering property: Every nonempty set
of nonnegative integers has a least element.
It is one of the axioms of the positive integers.
It can be used directly in proofs.
It can be generalized.
Definition: A set is well ordered if every
subset has a least element.
 N is well ordered under ≤.
 The set of finite strings over an alphabet using

lexicographic ordering is well ordered.


Axioms for the Set of Positive Integers
 Axiom 1: The number 1 is a positive integer.
 Axiom 2: If n is a positive integer, then n + 1, the
successor of n, is also a positive integer.
 Axiom 3: Every positive integer other than 1 is the
successor of a positive integer.
 Mathematical induction axiom:
 If S is a set of positive integers such that 1 ∈ S and for all
positive integers n if n ∈ S, then n + 1 ∈ S, then S is the set
of positive integers.
Well-Ordering Property
Example: Use the well-ordering property to prove the
division algorithm, which states that if a is an integer and d

with 0 ≤ r < d, such that a = dq + r.


is a positive integer, then there are unique integers q and r

form a − dq, where q is an integer. The set is nonempty


Solution: Let S be the set of nonnegative integers of the

since −dq can be made as large as needed.

r = a − dq0. The integer r is nonnegative. It also must be the


 By the well-ordering property, S has a least element

case that r < d. If it were not, then there would be a smaller

a − d(q0 + 1) = a − dq0 − d = r − d > 0.


nonnegative element in S, namely,

 Therefore, there are integers q and r with 0 ≤ r < d.


Recursive Definitions and
Structural Induction
Section 5.3
Section Summary
Recursively Defined Functions
Recursively Defined Sets and Structures
Structural Induction
Generalized Induction
Recursively Defined Functions
Definition: A recursive or inductive definition
of a function consists of two steps.
 Basis Step: Specify the value of the function at
zero.
 Recursive Step: Give a rule for finding its value at
an integer from its values at smaller integers.
A function f(n) is the same as a sequence a0, a1,
… , where ai, where f(i) = ai. This was done using
recurrence relations.
We can use recursion to define sequences,
functions and sets. And this is well defined.
Recursively Defined Functions
f(0) = 3,
Example: Suppose f is defined by:

f(n + 1) = 2f(n) + 3
Find f(1), f(2), f(3), f(4)
Solution:
2f(0) + 3 = 2∙3 + 3 = 9
2f(1)+ 3 = 2∙9 + 3 = 21
 f(1) =

2f(2) + 3 = 2∙21 + 3 = 45
 f(2) =

2f(3) + 3 = 2∙45 + 3 = 93
 f(3) =
 f(4) =

Example: Give an inductive definition of the factorial function


f(n)=n!
Solution:
f(0) = 1
f(n + 1) = (n + 1)∙ f(n)
Recursively Defined Functions
Example: Give a recursive definition of:

Solution: The first part of the definition is

The second part is


Fibonacci

1250)
(1170-

Fibonacci Numbers
Example : The Fibonacci numbers are
defined as follows:
f0 = 0
f1 = 1
fn = fn−1 + fn−2
Find f2, f3 , f4 , f5 .
f2 = f 1 + f 0 = 1 + 0 = 1
f3 = f 2 + f 1 = 1 + 1 = 2

f4 = f 3 + f 2 = 2 + 1 = 3

f5 = f 4 + f 3 = 3 + 2 = 5


Fibonacci Numbers
Example 4: Show that whenever n ≥ 3, fn > αn − 2, where α = (1 + √5)/2.
Solution: Let P(n) be the statement fn > αn−2 . Use strong induction to
show that P(n) is true whenever n ≥ 3.
 BASIS STEP: P(3) holds since α < 2 = f3

P(4) holds since α2 = (3 + √5)/2 < 3 = f4 .


 INDUCTIVE STEP: Assume that P(j) holds, i.e., fj > αj−2 for all integers j with

3 ≤ j ≤ k, where k ≥ 4. Show that P(k + 1) holds, i.e., fk+1 > αk−1 .

αk−1 = α2 ∙ αk−3 = ( α + 1) ∙αk−3 = α ∙αk−3+ 1 ∙αk−3 = αk−2


 Since α2 = α + 1 (because α is a solution of x2 − x − 1 = 0),

+ αk−3
fk−1 > αk−3, fk > αk−2.
 By the inductive hypothesis, because k ≥ 4 we have

fk+1 = fk + fk−1 > αk−2 + αk−3 = αk−1.


 Therefore, it follows that

 Hence, P(k + 1) is true.


Recursively Defined Sets and Structures
Recursive definitions of sets have two parts:
 The basis step specifies an initial collection of elements.
 The recursive step gives the rules for forming new elements
in the set from those already known to be in the set.
Sometimes the recursive definition has an exclusion rule,
which specifies that the set contains nothing other than
those elements specified in the basis step and generated
by applications of the rules in the recursive step.
We will always assume that the exclusion rule holds, even
if it is not explicitly mentioned.
We will later develop a form of induction, called structural
induction, to prove results about recursively defined sets.
Recursively Defined Sets and Structures
Example : Subset of Integers S:
BASIS STEP: 3 ∊ S.
RECURSIVE STEP: If x ∊ S and y ∊ S, then x + y is

Initially 3 is in S, then 3 + 3 = 6, then 3 + 6 = 9,


in S.

etc.
Example: The natural numbers N.
BASIS STEP: 0 ∊ N.
RECURSIVE STEP: If n is in N, then n + 1 is in N.
Initially 0 is in S, then 0 + 1 = 1, then 1 + 1 = 2,
etc.
Strings
Definition: The set Σ* of strings over the
alphabet Σ:
BASIS STEP: λ ∊ Σ* (λ is the empty string)
RECURSIVE STEP: If w is in Σ* and x is in Σ,
then wx  Σ*.

the set of all bit strings, λ,0,1, 00,01,10, 11, etc.


Example: If Σ = {0,1}, the strings in in Σ* are

Example: If Σ = {a,b}, show that aab is in Σ*.


Since λ ∊ Σ* and a ∊ Σ, a ∊ Σ*.
Since a ∊ Σ* and a ∊ Σ, aa ∊ Σ*.
Since aa ∊ Σ* and b ∊ Σ, aab ∊ Σ*.
String Concatenation
Definition: Two strings can be combined via the
operation of concatenation. Let Σ be a set of
symbols and Σ* be the set of strings formed from

of two strings, denoted by ∙, recursively as follows.


the symbols in Σ. We can define the concatenation

BASIS STEP: If w  Σ*, then w ∙ λ= w.


RECURSIVE STEP: If w1  Σ* and w2  Σ* and x  Σ,
then w1 ∙ (w2 x)= (w1 ∙ w2)x.
Often w1 ∙ w2 is written as w1 w2.
If w1 = abra and w2 = cadabra, the concatenation
w1 w2 = abracadabra.
Length of a String
Example: Give a recursive definition of l(w),
the length of the string w.
Solution: The length of a string can be

l(λ) = 0;
recursively defined by:

l(wx) = l(w) + 1 if w ∊ Σ* and x ∊ Σ.


Balanced Parentheses
Example: Give a recursive definition of the
set of balanced parentheses P.
Solution:
BASIS STEP: () ∊ P
RECURSIVE STEP: If w ∊ P, then () w ∊ P, (w)
∊ P and w () ∊ P.
Show that (() ()) is in P.
Why is ))(() not in P?
Well-Formed Formulae in Propositional
Logic
Definition: The set of well-formed formulae in
propositional logic involving T, F, propositional
variables, and operators from the set {¬,∧,∨,→,↔}.
BASIS STEP: T,F, and s, where s is a propositional
variable, are well-formed formulae.

then (¬ E), (E ∧ F), (E ∨ F), (E → F), (E ↔ F), are


RECURSIVE STEP: If E and F are well formed formulae,

Examples: ((p ∨q) → (q ∧ F)) is a well-formed


well-formed formulae.

pq ∧ is not a well formed formula.


formula.
Gabriel

(1795-
Lamé

1870)
Lames Theorem
Lamé’s Theorem: Let a and b be positive integers with a ≥ b.
Then the number of divisions used by the Euclidian algorithm to
find gcd(a,b) is less than or equal to five times the number of
decimal digits in b.

n b,
a• ≥
Proof: When we use the Euclidian algorithm to find gcd(a,b) with
divisions are used to
obtain (with a = r0,b =r1 ): • Since each quotient q1, q2 ,
0≤r …,qn-1 is at least 1 and qn ≥ 2:
r n ≥ 1 = f2 ,
0 1
r =rq +r 1 2 2

rn-1 ≥ 2 rn ≥ 2 f2 = f3,
< r1,
0 ≤ r3
rn-2 ≥ rn-1 + rn ≥ f3 + f2 = f4,
r1 = r2q2 + r3
< r2,
⋮ ⋮
rn-2 = rn-1qn-1 + rn 0 ≤ rn < r2 ≥ r3 + r4 ≥ fn-1 + fn-2 = fn,
rn-1, b = r1 ≥ r2 + r3 ≥ fn + fn-1
rn-1 = rnqn. continued
= fn+1.
Lamé’s Theorem
gcd(a,b) with a ≥ b, then b ≥ fn+1. By Example 4, fn+1 > αn − 1, for n >
 It follows that if n divisions are used by the Euclidian algorithm to find

2, where α = (1 + √5)/2. Therefore, b > αn−1.


 Because log10 α ≈ 0.208 > 1/5, log10 b > (n−1) log10 α > (n−1)/5 .
Hence, n−1 < 5 ∙log10 b.

 Suppose that b has k decimal digits. Then b < 10k and log10 b < k. It

.
follows that n − 1 < 5k and since k is an integer, n ≤ 5k.

 As a consequence of Lamé’s Theorem, O(log b) divisions are used by


the Euclidian algorithm to find gcd(a,b) whenever a > b.

5 (logresult
10 b + 1)
 By Lamé’s Theorem, the number of divisions needed to find gcd(a,b) with

digits in b (which equals ⌊log10 b⌋ + 1) is less than or equal to log10 b + 1.


a > b is less
Lamé’s than orwas
Theorem equal
theto first insince the number of decimal
computational
complexity
Rooted Trees
Definition: The set of rooted trees, where a rooted
tree consists of a set of vertices containing a
distinguished vertex called the root, and edges
connecting these vertices, can be defined recursively
by these steps:
BASIS STEP: A single vertex r is a rooted tree.
RECURSIVE STEP: Suppose that T1, T2, …,Tn are disjoint
rooted trees with roots r1, r2,…,rn, respectively. Then the
graph formed by starting with a root r, which is not in
any of the rooted trees T1, T2, …,Tn, and adding an edge
from r to each of the vertices r1, r2,…,rn, is also a rooted
tree.
Building Up Rooted Trees

• Trees are studied extensively in Chapter 11.


• Next we look at a special type of tree, the full binary
tree.
Full Binary Trees
Definition: The set of full binary trees can
be defined recursively by these steps.
BASIS STEP: There is a full binary tree
consisting of only a single vertex r.
RECURSIVE STEP: If T1 and T2 are disjoint full
binary trees, there is a full binary tree, denoted
by T1∙T2, consisting of a root r together with
edges connecting the root to each of the roots
of the left subtree T1 and the right subtree T2.
Building Up Full Binary Trees
Induction and Recursively Defined Sets
Example: Show that the set S defined by specifying that 3 ∊ S and that
if x ∊ S and y ∊ S, then x + y is in S, is the set of all positive integers
that are multiples of 3.
Solution: Let A be the set of all positive integers divisible by 3. To
prove that A = S, show that A is a subset of S and S is a subset of A.
 A⊂ S: Let P(n) be the statement that 3n belongs to S.
BASIS STEP: 3∙1 = 3 ∊ S, by the first part of recursive definition.

definition, if 3k ∊ S, then since 3 ∊ S, 3k + 3 = 3(k + 1) ∊ S. Hence, P(k + 1) is


INDUCTIVE STEP: Assume P(k) is true. By the second part of the recursive

 S ⊂ A:
true.

BASIS STEP: 3 ∊ S by the first part of recursive definition, and 3 = 3∙1.

both x and y are in S. If x and y are both in A, then both x and y are divisible by 3.
INDUCTIVE STEP: The second part of the recursive definition adds x +y to S, if

By part (i) of Theorem 1 of Section 4.1, it follows that x + y is divisible by 3.


 We used mathematical induction to prove a result about a recursively
defined set. Next we study a more direct form induction for proving
results about recursively defined sets.
Structural Induction
Definition: To prove a property of the elements of
a recursively defined set, we use structural
induction.
BASIS STEP: Show that the result holds for all
elements specified in the basis step of the recursive
definition.
RECURSIVE STEP: Show that if the statement is true
for each of the elements used to construct new
elements in the recursive step of the definition, the
result holds for these new elements.
The validity of structural induction can be shown to
follow from the principle of mathematical induction.
Full Binary Trees
Definition: The height h(T) of a full binary tree T is defined
recursively as follows:

a root r is h(T) = 0.
 BASIS STEP: The height of a full binary tree T consisting of only

 RECURSIVE STEP: If T1 and T2 are full binary trees, then the full
binary tree T = T1∙T2 has height
1 + max(h(T1),h(T2)).
h(T) =

The number of vertices n(T) of a full binary tree T satisfies


the following recursive formula:

consisting of only a root r is n(T) = 1.


 BASIS STEP: The number of vertices of a full binary tree T

 RECURSIVE STEP: If T1 and T2 are full binary trees, then the


full binary tree T = T1∙T2 has the number of vertices
n(T) = 1 + n(T1) + n(T2).
Structural Induction and Binary Trees
2h(T)+1 – 1.
Theorem: If T is a full binary tree, then n(T) ≤

Proof: Use structural induction.

consisting only of a root, n(T) = 1 and h(T) = 0. Hence,


 BASIS STEP: The result holds for a full binary tree

n(T) = 1 ≤ 20+1 – 1 = 1.
 RECURSIVE STEP: Assume n(T1) ≤ 2h(T1)+1 – 1 and also
n(T) = 1 + n(T1) + n(T2)
n(T)) n(T2) ≤ 2 – 1 whenever T1 and T2 are full
h(T2)+1
(by recursive formula of

1 + (2h(T1)+1 – 1) + (2h(T2)+1 – 1) (by inductive hypothesis)


binary≤trees.
≤ 2∙max(2h(T1)+1 ,2h(T2)+1 ) – 1
= 2∙2max(h(T1),h(T2))+1 – 1 (max(2x , 2y)= 2max(x,y) )
= 2∙2h(t) – 1 (by recursive definition of

= 2h(t)+1 – 1
h(T))

2
Generalized Induction
Generalized induction is used to prove results about
sets other than the integers that have the well-

9)
ordering property. (explored in more detail in Chapter

For example, consider an ordering on N⨉ N, ordered


pairs of nonnegative integers. Specify that (x1 ,y1) is
less than or equal to (x2,y2) if either x1 < x2, or x1 = x2
and y1 <y2 . This is called the lexicographic ordering.
Strings are also commonly ordered by a lexicographic
ordering.
The next example uses generalized induction to prove
a result about ordered pairs from N⨉ N.
Generalized Induction
Example: Suppose that am,n is defined for (m,n)∊N ×N by
a0,0 = 0 and

Show that am,n = m + n(n + 1)/2 is defined for all (m,n)∊N ×N.
Solution: Use generalized induction.
BASIS STEP: a0,0 = 0 = 0 + (0∙1)/2
INDUCTIVE STEP: Assume that am̍,n̍ = m̍+ n̍(n̍ + 1)/2 whenever(m̍,n̍)
is less than (m,n) in the lexicographic ordering of N ×N .
If n = 0, by the inductive hypothesis we can conclude
am,n = am−1,n + 1 = m − 1+ n(n + 1)/2 + 1 = m + n(n + 1)/2 .

If n > 0, by the inductive hypothesis we can conclude


am,n = am−1,n + 1 = m + n(n − 1)/2 +n = m + n(n + 1)/2 .

2
Recursive Algorithms
Section 5.4
Section Summary
Recursive Algorithms
Proving Recursive Algorithms Correct
Recursion and Iteration (not yet included in
overheads)
Merge Sort
Recursive Algorithms
Definition: An algorithm is called recursive
if it solves a problem by reducing it to an
instance of the same problem with smaller
input.
For the algorithm to terminate, the instance
of the problem must eventually be reduced to
some initial case for which the solution is
known.
Recursive Factorial Algorithm
Example: Give a recursive algorithm for
computing n!, where n is a nonnegative
integer.
Solution: Use the recursive definition of the
factorial function.
if n = 0 then return 1
procedure factorial(n: nonnegative integer)

else return n∙factorial (n − 1)


{output is n!}
Recursive Exponentiation Algorithm
Example: Give a recursive algorithm for
computing an, where a is a nonzero real
number and n is a nonnegative integer.
Solution: Use the recursive definition of an.
procedure power(a: nonzero real number, n: nonnegative

if n = 0 then return 1
integer)

else return a∙ power (a, n − 1)


{output is an}
Recursive GCD Algorithm
Example: Give a recursive algorithm for
computing the greatest common divisor of
two nonnegative integers a and b with a < b.
Solution: Use the reduction

and the condition gcd(0,b) = b when b > 0.


gcd(a,b) = gcd(b mod a, a)

procedure gcd(a,b: nonnegative integers

if a = 0 then return b
with a < b)

else return gcd (b mod a, a)


{output is gcd(a, b)}
Recursive Modular Exponentiation
Algorithm
Example: Devise a a recursive algorithm for

are integers with m ≥ 2, n ≥ 0, and 1≤ b


computing bn mod m, where b, n, and m

≤ m. (see text for full


Solution:
procedure mpower(b,m,n: integers with b > 0 and m ≥ 2, n ≥ 0)
explanation)
if n = 0 then
return 1
else if n is even then
return mpower(b,n/2,m)2 mod m

return (mpower(b,⌊n/2⌋,m)2 mod m∙ b mod m) mod m


else

{output is bn mod m}
Recursive Binary Search Algorithm
Example: Construct a recursive version of a
binary search algorithm.
Solution:
sequence of integers. Initially i is 1 and j is n. We are
Assume we have a1,a2,…, an, an increasing

searching
procedure for x.search(i, j, x : integers, 1≤ i ≤ j ≤n)
m := ⌊(i + j)/2⌋
binary

if x = am then
return m
else if (x < am and i < m) then
return binary search(i,m−1,x)
else if (x > am and j >m) then
return binary search(m+1,j,x)
else return 0
{output is location of x in a1, a2,…,an if it appears, otherwise 0}
Proving Recursive Algorithms Correct
 Both mathematical and str0ng induction are useful techniques to show that
recursive algorithms always produce the correct output.

Example: Prove that the algorithm for computing the powers of real numbers is
correct. procedure power(a: nonzero real number, n: nonnegative

if n = 0 then return 1
integer)

else return a∙ power (a, n − 1)


{output is an}

Solution: Use mathematical induction on the exponent n.


BASIS STEP: a0 =1 for every nonzero real number a, and power(a,0) = 1.

≠0. Assuming the inductive hypothesis, the algorithm correctly computes a , since
INDUCTIVE STEP: The inductive hypothesis is that power(a,k) = ak, for all a

power(a,k + 1) = a∙ power (a, k) = a∙ ak = ak+1 .


k+1

.
Merge Sort
Merge Sort works by iteratively splitting a
list (with an even number of elements) into
two sublists of equal length until each sublist
has one element.
Each sublist is represented by a balanced
binary tree.
At each step a pair of sublists is successively
merged into a list with the elements in
increasing order. The process ends when all
the sublists have been merged.
The succession of merged lists is represented
Merge Sort
8,2,4,6,9,7,10, 1, 5, 3
Example: Use merge sort to put the list

into increasing order.


Solution:
Recursive Merge Sort
Example: Construct a recursive merge sort
algorithm.
Solution: Begin with the
procedure mergesort(L = a , a ,…,a )
list of n
1 2

if n > 1 thenL.
elements
n

m := ⌊n/2⌋
L1 := a1, a2,…,am
L2 := am+1, am+2,…,an
L := merge(mergesort(L1), mergesort(L2 ))
{L is now sorted into elements in increasing order}

continued
Recursive Merge Sort
Subroutine merge, which merges two sorted lists.
procedure merge(L1, L2 :sorted lists)
L := empty list
while L1 and L2 are both nonempty
remove smaller of first elements of L1 and L2 from its list;
put at the right end of L
if this removal makes one list empty
then remove all elements from the other list and append them to L
return L {L is the merged list with the elements in increasing order}

Complexity of Merge: Two sorted lists with m

sorted list using no more than m + n − 1


elements and n elements can be merged into a

comparisons.
Merging Two Lists
Example: Merge the two lists 2,3,5,6 and
1,4.
Solution:
Complexity of Merge Sort
Complexity of Merge Sort: The number of comparisons

 For simplicity, assume that n is a power of 2, say 2m.


needed to merge a list with n elements is O(n log n).

with m levels, and 2m lists with one element at level m.


 At the end of the splitting process, we have a binary tree

 The merging process begins at level m with the pairs of 2m


lists with one element combined into 2m−1 lists of two
elements. Each merger takes two one comparison.

…,3,2,1) 2k lists with 2m−k elements are merged into 2k−1


 The procedure continues , at each level (k = m, m−1, m−1,

lists, with 2m−k + 1 elements at level k−1.

each merger takes at most 2m−k + 2m−k − 1 = 2m−k+ 1 − 1


 We know (by the complexity of the merge subroutine) that

comparisons.
continued
Complexity of Merge Sort
Summing over the number of comparisons at each level,
shows that

because m = log n and n = 2m.

evaluated as 2m − 1 using the formula for the sum of the


(The expression in the formula above is

terms of a geometric progression, from Section 2.4.)


In Chapter 11, we’ll see that the fastest comparison-based
sorting algorithms have O(n log n) time complexity. So,
merge sort achieves the best possible big-O estimate of
time complexity.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy