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

Discrete Mathematics: Induction and Recursion

This document discusses mathematical induction, recursion, and recursive algorithms. It begins by explaining mathematical induction and providing examples of using it to prove various mathematical statements. It then discusses recursion, defining objects recursively and recursively defined sequences. Examples are given of recursively defining functions like factorials. Finally, it discusses recursive algorithms, where a problem is solved by reducing it to a smaller instance of the same problem.

Uploaded by

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

Discrete Mathematics: Induction and Recursion

This document discusses mathematical induction, recursion, and recursive algorithms. It begins by explaining mathematical induction and providing examples of using it to prove various mathematical statements. It then discusses recursion, defining objects recursively and recursively defined sequences. Examples are given of recursively defining functions like factorials. Finally, it discusses recursive algorithms, where a problem is solved by reducing it to a smaller instance of the same problem.

Uploaded by

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

Discrete

Mathematics

Chapter 4
Induction and Recursion

大葉大學 資訊工程系 黃鈴玲(Lingling Huang)


4.1 Mathematical Induction(數學歸納法)
Note : Mathematical induction can be used only to
prove results obtained in some other way. It is
not a tool for discovering formulae or theorems.
(p.265)
P(n) : a propositional function (e.g. n ≦ 2n)
A proof by mathematical induction (MI) that P(n) is
true for every nZ+ consists of two steps :
1. Basis step : The proposition P(1) is shown to be
true.(若 n 從 0 開始則證 P(0)為真 )
2. Inductive step : the implication P(k) → P(k+1) is
shown to be true for every kZ+
Ch4-2
Example 2. Use MI to prove that the sum of the first n odd
positive integers is n2.
Note. 不用MI就可以得証:
n n

 (
i 1
2i - 1)  2  i
i 1
- n  n ( n  1) - n n 2

n
Pf : Let P(n) denote the proposition that  (
i 1
2i - 1) n 2

Basis step : P(1) is true , since 1=12


Inductive step : Suppose that P(k) is true for a positive
integer k,
i.e., 1+3+5+…+(2k-1)=k2
Note that 1+3+5+…+(2k-1)+(2k+1) = k2+2k+1= (k+1)2
∴ P(k+1) is true
By induction, P(n) is true for all nZ+
Ch4-3
Example 5. Use MI to prove the inequality
n < 2n for all nZ+
pf : Let P(n) be the proposition “ n < 2n ”.
Basis step : P(1) is true since 1 < 21 .
Inductive step :
Assume that P(k) is true for a positive integer k,
i.e., k < 2k.
Consider P(k+1) :
k + 1 < 2k + 1  2k + 2k =2k + 1
∴ P(k+1) is true.
By MI, P(n) is true for all nZ+.

Ch4-4
Example 7. The harmonic numbers Hk, k =1,2,3,…, are
1 1 1
defined by H k  1    ...  . Use MI to show that
2 3 k
n
H 2n  1  whenever n is a nonnegative integer.
2
Pf : Let P(n) be the proposition that “ H 2n  1  n / 2 ”.
Basis step : P(0) is true, since H 20  H1  1  1  0 / 2.
Inductive step : Assume that P(k) is true for some k,
i.e., H 2k  1  k / 2
Consider P(k+1) :

Ch4-5
1 1 1 1 1 1
H 2k 1  1   k  k  k    k 1
2 3 2 2 1 2  2 2
1 1 1
 H 2k  k  k    k 1
2 1 2  2 2
k 1 1 1
 (1  )  k  k    k 1
2 2 1 2  2 2
k 1 1 1
 (1  )  k  k  k
2 2 2 k
2 2 k
2  2k
k 2k
 (1  )  k
2 2  2k
k 1
 1
2
∴P(k+1) is true.
By MI, P(n) is true for all nZ+. Exercise : 7, 13
Ch4-6
4.2 Strong Induction(強數學歸納法)

 Basis step 相同
 Inductive step : Assume all the statements P(1),
P(2), …, P(k) are true.
Show that P(k+1) is also true.

Ch4-7
Example 2. Show that if nZ and n >1, then n can be written
as the product of primes.
Pf : Let P(n) be the proposition that n can be written as the
product of primes.
Basis : P(2) is true, since 2 is a prime number
Inductive : Assume P(2), P(3), …, P(k) are true.
Consider P(k + 1) :
Case 1 : k + 1 is prime  P(k+1) is true
Case 2 : k + 1 is composite,
i.e., k + 1 = ab where 2  a  b < k+1
By the induction hypothesis, both a and b can be
written as the product of primes.
 P(k+1) is true.
By Strong MI, P(k) is true if kZ and k >1.

Note: 此題無法僅用 MI 證
Ch4-8
Example 4. Prove that every amount of postage of 12 cents
or more can be formed using just 4-cent and 5-cent stamps.
Pf : Let P(n) be the statement that the postage of n cents can
formed using just 4-cent and 5-cent stamps.
Basis : P(12) is true, since 12 = 4  3;
P(13) is true, since 13 = 4  2 + 5  1;
P(14) is true, since 14 = 4  1 + 5  2;
P(15) is true, since 15 = 5  3;
Inductive : Assume P(12), P(13), …, P(k) are true.
Consider P(k+1) :
Suppose k-3 = 4  m + 5  n. (k-3  12)
Then k+1 = 4  (m1) + 5  n.
 P(k+1) is true.
By Strong MI, P(n) is true if nZ and n 12.
Exercise : 7
Ch4-9
4.3 Recursive Definitions.
Def. The process of defining an object in terms of itself
is called recursion(遞迴).
e.g. We specify the terms of a sequence using
(1) an explicit formula:
an=2n, n=0,1,2,…
(2) a recursive form:
a0=1,
an+1=2an , n=0,1,2,…
Example 1. Suppose that f is defined recursively by
f(0)=3 , f(n+1)=2f(n)+3
Find f(1), f(2), f(3), f(4).
Ch4-10
Example 2. Give an inductive (recursive) definition of
the factorial function F(n) = n!.
Sol :
initial value : F(0) = 1
recursive form : F(n+1) = (n+1)! = n!  (n+1)
= F(n)  (n+1)
Def1, Example 5. The Fibonacci numbers f0, f1, f2…,are
defined by : f0 = 0 ,
f1 = 1 ,
fn = fn-1 + fn-2 , for n = 2,3,4,…
what is f4 ?
Sol :
f4 = f3 + f2 = (f2 + f1) + (f1 + f0) = f2 + 2
= (f1 + f0) + 2 = 3
Ch4-11
1 5
Example 6. Show that fn > a n-2 , where a  ,n 3
2
Pf: ( By Strong MI )
Let P(n) be the statement fn >a n-2 .
Basis: f3 = 2 > a
3 5
f4  3  a 2

2
so that P(3) and P(4) are true.
Inductive: Assume that P(3), P(4), …, P(n) are true.
We must show that P(n+1) is true.
fn+1 = fn + fn-1 > a n-2 + a n-3
= a n-3(a +1)
∵ a +1= a 2
∴ fn+1 > a n-3  a 2 = a n-1
We get that P(n+1) is true.
By Strong MI , P(n) is true for all n  3
Ch4-12
※Recursively defined sets.
Example 7. Let S be defined recursively by
3S
x+yS if xS and yS.
Show that S is the of positive integers divisible by 3
(i.e., S = { 3, 6, 9, 12, 15, 18, … }
Pf:
Let A be the set of all positive integers divisible by 3.
We need to prove that A=S.
(i) A  S : (By MI)
Let P(n) be the statement that 3nS

(ii) S  A : (利用S的定義) S=A
(1) 3  A ,
(2) if xA,yA, then 3|x and 3|y.
 3|(x+y)  x+yA
∴S  A Ch4-13
Definition 2. The set of strings over an alphabet 
is denoted by *. The empty string is denoted
by l, l , and wx* whenever w* and x.
eg.  = { a, b, c }
la lb lc
* = { l, a , b , c , aa , ab , ac , ba , bb , bc, …
abcabccba, …}
Example 9. Give a recursive definition of l(w),
the length of the string w*
Sol :
initial value : l(l)=0
recursive def : l(wx)=l(w)+1 if w*, x.

Ch4-14
Exercise 3, 7, 13, 48, 49
Exercise 39. When does a string belong to the
set A of bit strings defined recursively by
lA
0x1A if xA.
Sol :
A={l, 01 , 0011, 000111, …}
0l1

∴當bit string a = 000…011…1 時


aA n個 n個

Ch4-15
 Ackermann’s function
A(m, n) = 2n if m = 0
0 if m  1 and n = 0
2 if m  1 and n = 1
A(m-1, A(m, n-1)) if m  1 and n  2

Exercise 49 Show that A(m,2)=4 whenever m  1


Pf :
A(m,2) = A(m-1, A(m,1)) = A(m-1,2) whenever m  1.
A(m,2) = A(m-1,2) = A(m-2,2) = … = A(0,2) = 4.

Ch4-16
4.4 Recursive algorithms.
※ Sometimes we can reduce the solution to a
problem with a particular set of input to the
solution of the same problem with smaller
input values.
eg. gcd(a,b) = gcd(b mod a, a) (when a < b)

Def 1. An algorithm is called recursive if it


solves a problem by reducing it to an instance
of the same problem with smaller input.

Ch4-17
Example 2. Give a recursive algorithm for
computing an, where aR \ {0}, nN.

Sol :
recursive definition of an :
initial value : a0=1
recursive def : an = a  an-1.

Algorithm 2.
Procedure power( a : nonzero real number,
n : nonnegative integer )
if n = 0 then power(a, n):=1
else power(a, n):= a * power(a, n-1).
Ch4-18
Example 4. Find gcd(a,b) with 0a<b
Sol :
Algorithm 4.
procedure gcd(a,b : nonnegative integers with a<b)
if a=0 then gcd(a,b) := b
else gcd(a,b) := gcd(b mod a, a).

Example 5. Search x in a1, a2,…,an by Linear Search


Sol : Alg. 5 從ai,ai+1,…aj 中找 x
procedure search (i, j, x: integers)
if ai = x then location := i call
else if i = j then location := 0 search(1, n, x)
else search(i+1, j, x)
Ch4-19
Example 6. Search x from a1,a2,…,an by binary
search (recursive version).
search x from ai, ai+1, …, aj
Sol : Alg. 5
procedure binary_search (x , i , j: integers)
m := (i+j) / 2
if x = am then location := m 表示左半邊
else if (x < am and i < m) then ai, ai+1, …, am-1
至少還有一個元素
binary_search(x, i, m-1)
else if (x > am and j > m) then
binary_search(x, m+1, j)
else location := 0

call binary_search(x, 1, n)
Ch4-20
Example 1. Give the value of n!, nZ+
Sol :
Note : n! = n  (n-1)!
Alg. 1 (Recursive Procedure)
procedure factorial (n: positive integer)
if n = 1 then factorial (n) := 1
else factorial (n) := n  factorial (n-1)

Alg. (Iterative Procedure)


procedure iterative_factorial (n : positive integer)
x := 1
for i := 1 to n
x := i  x
{ x = n! }
Ch4-21
※ iterative alg. 的計算次數通常比 recursive alg.少
※ Find Fibonacci numbers
(Note : f0=0, f1=1, fn=fn-1+fn-2 for n2)

Alg. 7 (Recursive Fibonacci)


procedure Fibonacci (n : nonnegative integer)
if n = 0 then Fibonacci (0) := 0
else if n = 1 then Fibonacci (1) := 1
else Fibonacci (n) := Fibonacci (n-1)+Fibonacci (n-2)

Ch4-22
Alg.8 (Iterative Fibonacci)
procedure iterative_fibonacci (n: nonnegative integer)
if n = 0 then y := 0 // y = f0
else begin
x := 0
y := 1 // y = f1
for i := 1 to n-1
begin
i=1 i=2 i=3
z := x + y
x := y z f2 f3 f4
y := z x f1 f2 f3
end y f2 f3 f4
end
{y is fn }

Exercise : 11, 35
Ch4-23

You might also like