Discrete Mathematics Chapter 4 Induction and Recursion Lingling























- Slides: 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 ≦ 2 n) 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+ Ch 4 -2
Example 2. Use MI to prove that the sum of the first n odd positive integers is n 2. Note. 不用MI就可以得証: Pf : Let P(n) denote the proposition that 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+…+(2 k-1)=k 2 Note that 1+3+5+…+(2 k-1)+(2 k+1) = k 2+2 k+1= (k+1)2 ∴ P(k+1) is true By induction, P(n) is true for all n Z+ Ch 4 -3
Example 5. Use MI to prove the inequality n < 2 n for all n Z+ pf : Let P(n) be the proposition “ n < 2 n ”. 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 < 2 k. Consider P(k+1) : k + 1 < 2 k + 1 2 k + 2 k =2 k + 1 ∴ P(k+1) is true. By MI, P(n) is true for all n Z+. Ch 4 -4
Example 7. The harmonic numbers Hk, k =1, 2, 3, …, are defined by . Use MI to show that whenever n is a nonnegative integer. Pf : Let P(n) be the proposition that “ ”. Basis step : P(0) is true, since . Inductive step : Assume that P(k) is true for some k, i. e. , Consider P(k+1) : Ch 4 -5
∴P(k+1) is true. By MI, P(n) is true for all n Z+. Exercise : 7, 13 Ch 4 -6
4. 2 Strong Induction(強數學歸納法) n n Basis step 相同 Inductive step : Assume all the statements P(1), P(2), …, P(k) are true. Show that P(k+1) is also true. Ch 4 -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 證 Ch 4 -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 Ch 4 -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=2 n, n=0, 1, 2, … (2) a recursive form: a 0=1, an+1=2 an , n=0, 1, 2, … Example 1. Suppose that f is defined recursively by f(0)=3 , f(n+1)=2 f(n)+3 Find f(1), f(2), f(3), f(4). Ch 4 -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) Def 1, Example 5. The Fibonacci numbers f 0, f 1, f 2…, are defined by : f 0 = 0 , f 1 = 1 , fn = fn-1 + fn-2 , for n = 2, 3, 4, … what is f 4 ? Sol : f 4 = f 3 + f 2 = (f 2 + f 1) + (f 1 + f 0) = f 2 + 2 = (f 1 + f 0) + 2 = 3 Ch 4 -11
Example 6. Show that fn > a n-2 , where Pf: ( By Strong MI ) Let P(n) be the statement fn >a n-2. Basis: f 3 = 2 > a 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 Ch 4 -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 3 n 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 Ch 4 -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 . Ch 4 -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 0 x 1 A if x A. Sol : A={l, 01 , 0011, 000111, …} 0 l 1 ∴當bit string a = 000… 011… 1 時 a A n個 n個 Ch 4 -15
n Ackermann’s function A(m, n) = 2 n 0 2 A(m-1, A(m, n-1)) if m = 0 if m 1 and 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. Ch 4 -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. Ch 4 -17
Example 2. Give a recursive algorithm for computing an, where a R {0}, n N. Sol : recursive definition of an : initial value : a 0=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). Ch 4 -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 a 1, a 2, …, an by Linear Search Sol : Alg. 5 從ai, ai+1, …aj 中找 x procedure search (i, j, x: integers) if ai = x then location : = i else if i = j then location : = 0 else search(i+1, j, x) call search(1, n, x) Ch 4 -19
Example 6. Search x from a 1, a 2, …, 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 ai, ai+1, …, am-1 else if (x < am and i < m) then 至少還有一個元素 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) Ch 4 -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! } Ch 4 -21
※ iterative alg. 的計算次數通常比 recursive alg. 少 ※ Find Fibonacci numbers (Note : f 0=0, f 1=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) Ch 4 -22
Alg. 8 (Iterative Fibonacci) procedure iterative_fibonacci (n: nonnegative integer) if n = 0 then y : = 0 // y = f 0 else begin x : = 0 y : = 1 // y = f 1 for i : = 1 to n-1 begin i=1 i=2 i=3 z : = x + y z f 2 f 3 f 4 x : = y y : = z x f 1 f 2 f 3 end y f 2 f 3 f 4 end {y is fn } Exercise : 11, 35 Ch 4 -23