Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE373: Data Structures and Algorithms Lecture 2: Proof by Induction

Similar presentations


Presentation on theme: "CSE373: Data Structures and Algorithms Lecture 2: Proof by Induction"— Presentation transcript:

1 CSE373: Data Structures and Algorithms Lecture 2: Proof by Induction
Catie Baker Spring 2015

2 Background on Induction
Type of mathematical proof Typically used to establish a given statement for all natural numbers (e.g. integers > 0) Proof is a sequence of deductive steps Show the statement is true for the first number. Show that if the statement is true for any one number, this implies the statement is true for the next number. If so, we can infer that the statement is true for all numbers. Spring 2015 CSE 373: Data Structures and Algorithms

3 Think about climbing a ladder
1. Show you can get to the first rung (base case) 2. Show you can get between rungs (inductive step) 3. Now you can climb forever. Spring 2015 CSE 373: Data Structures and Algorithms

4 CSE 373: Data Structures and Algorithms
Why you should care Induction turns out to be a useful technique AVL trees Heaps Graph algorithms Can also prove things like 3n > n3 for n ≥ 4 Exposure to rigorous thinking Spring 2015 CSE 373: Data Structures and Algorithms

5 CSE 373: Data Structures and Algorithms
Example problem Find the sum of the integers from 1 to n … + (n-1) + n For any n ≥ 1 Could use brute force, but would be slow There’s probably a clever shortcut Spring 2015 CSE 373: Data Structures and Algorithms

6 CSE 373: Data Structures and Algorithms
Finding the formula Shortcut will be some formula involving n Compare examples and look for patterns Not something I will ask you to do! Start with n = 10: Large enough to be a pain to add up Worthwhile to find shortcut Spring 2015 CSE 373: Data Structures and Algorithms

7 CSE 373: Data Structures and Algorithms
Finding the formula = 5×11 Spring 2015 CSE 373: Data Structures and Algorithms

8 CSE 373: Data Structures and Algorithms
Finding the formula = 4×10 + 5 Spring 2015 CSE 373: Data Structures and Algorithms

9 CSE 373: Data Structures and Algorithms
Finding the formula = 4×9 Spring 2015 CSE 373: Data Structures and Algorithms

10 CSE 373: Data Structures and Algorithms
Finding the formula = 3×8 + 4 Spring 2015 CSE 373: Data Structures and Algorithms

11 CSE 373: Data Structures and Algorithms
Finding the formula n=7 3×8 + 4 n=8 4×9 n=9 4×10 + 5 n=10 5×11 Spring 2015 CSE 373: Data Structures and Algorithms

12 CSE 373: Data Structures and Algorithms
Finding the formula n=7 3×8 + 4 n is odd n=8 4×9 n is even n=9 4×10 + 5 n=10 5×11 Spring 2015 CSE 373: Data Structures and Algorithms

13 CSE 373: Data Structures and Algorithms
Finding the formula When n is even … + (n-3) + (n-2) + (n-1) + n = (n/2)×(n+1) Spring 2015 CSE 373: Data Structures and Algorithms

14 CSE 373: Data Structures and Algorithms
Finding the formula 3×8 + 4 4×9 n(n+1)/2 4×10 + 5 5×11 Spring 2015 CSE 373: Data Structures and Algorithms

15 CSE 373: Data Structures and Algorithms
Finding the formula When n is odd … + (n-3) + (n-2) + (n-1) + n = ((n-1)/2)×(n+1) + (n+1)/2 Spring 2015 CSE 373: Data Structures and Algorithms

16 CSE 373: Data Structures and Algorithms
Finding the formula When n is odd … + (n-3) + (n-2) + (n-1) + n = ((n-1)/2)×(n+1) + (n+1)/2 Spring 2015 CSE 373: Data Structures and Algorithms

17 CSE 373: Data Structures and Algorithms
Finding the formula When n is odd … + (n-3) + (n-2) + (n-1) + n = ((n-1)×(n+1) + (n+1))/2 Spring 2015 CSE 373: Data Structures and Algorithms

18 CSE 373: Data Structures and Algorithms
Finding the formula When n is odd … + (n-3) + (n-2) + (n-1) + n = ((n-1)×(n+1) + (n+1))/2 Spring 2015 CSE 373: Data Structures and Algorithms

19 CSE 373: Data Structures and Algorithms
Finding the formula When n is odd … + (n-3) + (n-2) + (n-1) + n = ((n-1 + 1)×(n+1))/2 Spring 2015 CSE 373: Data Structures and Algorithms

20 CSE 373: Data Structures and Algorithms
Finding the formula When n is odd … + (n-3) + (n-2) + (n-1) + n = ((n-1 + 1)×(n+1))/2 Spring 2015 CSE 373: Data Structures and Algorithms

21 CSE 373: Data Structures and Algorithms
Finding the formula When n is odd … + (n-3) + (n-2) + (n-1) + n = (n (n+1))/2 Spring 2015 CSE 373: Data Structures and Algorithms

22 CSE 373: Data Structures and Algorithms
Finding the formula 3×8 + 4 n(n+1)/2 4×9 4×10 + 5 5×11 Spring 2015 CSE 373: Data Structures and Algorithms

23 CSE 373: Data Structures and Algorithms
Are we done? The pattern seems pretty clear Is there any reason to think it changes? But we want something for any n ≥ 1 A mathematical approach is skeptical Spring 2015 CSE 373: Data Structures and Algorithms

24 CSE 373: Data Structures and Algorithms
Are we done? The pattern seems pretty clear Is there any reason to think it changes? But we want something for any n ≥ 1 A mathematical approach is skeptical All we know is n(n+1)/2 works for 7 to 10 We must prove the formula works in all cases A rigorous proof Spring 2015 CSE 373: Data Structures and Algorithms

25 CSE 373: Data Structures and Algorithms
Proof by Induction Prove the formula works for all cases. Induction proofs have four components: The thing you want to prove, e.g., sum of integers from 1 to n = n(n+1)/2 The base case (usually "let n = 1"), The assumption step (“assume true for n = k") The induction step (“now let n = k + 1"). n and k are just variables! Spring 2015 CSE 373: Data Structures and Algorithms

26 CSE 373: Data Structures and Algorithms
Proof by induction P(n) = sum of integers from 1 to n We need to do Base case Assumption Induction step n and k are just variables! prove for P(1) assume for P(k) show for P(k+1) Spring 2015 CSE 373: Data Structures and Algorithms

27 CSE 373: Data Structures and Algorithms
Proof by induction P(n) = sum of integers from 1 to n We need to do Base case Assumption Induction step prove for P(1) assume for P(k) show for P(k+1) Spring 2015 CSE 373: Data Structures and Algorithms

28 CSE 373: Data Structures and Algorithms
Proof by induction What we are trying to prove: P(n) = n(n+1)/2 Base case P(1) = 1 1(1+1)/2 = 1(2)/2 = 1(1) = 1 Spring 2015 CSE 373: Data Structures and Algorithms

29 CSE 373: Data Structures and Algorithms
Proof by induction What we are trying to prove: P(n) = n(n+1)/2 Assume true for k: P(k) = k(k+1)/2 Induction step: Now consider P(k+1) = … + k + (k+1) Spring 2015 CSE 373: Data Structures and Algorithms

30 CSE 373: Data Structures and Algorithms
Proof by induction What we are trying to prove: P(n) = n(n+1)/2 Assume true for k: P(k) = k(k+1)/2 Induction step: Now consider P(k+1) = … + k + (k+1) = k(k+1)/2 + (k+1) Spring 2015 CSE 373: Data Structures and Algorithms

31 CSE 373: Data Structures and Algorithms
Proof by induction What we are trying to prove: P(n) = n(n+1)/2 Assume true for k: P(k) = k(k+1)/2 Induction step: Now consider P(k+1) = … + k + (k+1) = k(k+1)/2 + (k+1) = k(k+1)/2 + 2(k+1)/2 Spring 2015 CSE 373: Data Structures and Algorithms

32 CSE 373: Data Structures and Algorithms
Proof by induction What we are trying to prove: P(n) = n(n+1)/2 Assume true for k: P(k) = k(k+1)/2 Induction step: Now consider P(k+1) = … + k + (k+1) = k(k+1)/2 + (k+1) = k(k+1)/2 + 2(k+1)/2 = (k(k+1) + 2(k+1))/2 Spring 2015 CSE 373: Data Structures and Algorithms

33 CSE 373: Data Structures and Algorithms
Proof by induction What we are trying to prove: P(n) = n(n+1)/2 Assume true for k: P(k) = k(k+1)/2 Induction step: Now consider P(k+1) = … + k + (k+1) = k(k+1)/2 + (k+1) = k(k+1)/2 + 2(k+1)/2 = (k+1)(k+2)/2 = (k(k+1) + 2(k+1))/2 Spring 2015 CSE 373: Data Structures and Algorithms

34 CSE 373: Data Structures and Algorithms
Proof by induction What we are trying to prove: P(n) = n(n+1)/2 Assume true for k: P(k) = k(k+1)/2 Induction step: Now consider P(k+1) = … + k + (k+1) = k(k+1)/2 + (k+1) = k(k+1)/2 + 2(k+1)/2 = (k+1)(k+2)/2 = (k(k+1) + 2(k+1))/2 Spring 2015 CSE 373: Data Structures and Algorithms

35 CSE 373: Data Structures and Algorithms
Proof by induction What we are trying to prove: P(n) = n(n+1)/2 Assume true for k: P(k) = k(k+1)/2 Induction step: Now consider P(k+1) = … + k + (k+1) = k(k+1)/2 + (k+1) = k(k+1)/2 + 2(k+1)/2 = (k+1)(k+2)/2 = (k(k+1) + 2(k+1))/2 = (k+1)((k+1)+1)/2 Spring 2015 CSE 373: Data Structures and Algorithms

36 CSE 373: Data Structures and Algorithms
Proof by induction What we are trying to prove: P(n) = n(n+1)/2 Assume true for k: P(k) = k(k+1)/2 Induction step: Now consider P(k+1) = … + k + (k+1) = k(k+1)/2 + (k+1) = k(k+1)/2 + 2(k+1)/2 = (k+1)(k+2)/2 = (k(k+1) + 2(k+1))/2 = (k+1)((k+1)+1)/2 Spring 2015 CSE 373: Data Structures and Algorithms

37 CSE 373: Data Structures and Algorithms
We’re done! P(n) = sum of integers from 1 to n We have shown Base case Assumption Induction step Success: we have proved that P(n) is true for any n ≥ 1  proved for P(1) assumed for P(k) proved for P(k+1) Spring 2015 CSE 373: Data Structures and Algorithms

38 CSE 373: Data Structures and Algorithms
Another one to try What is the sum of the first n powers of 2? n-1 k = 1: 20 = 1 k = 2: = = 3 k = 3: = = 7 k = 4: = = 15 For general n, the sum is 2n - 1 Spring 2015 CSE 373: Data Structures and Algorithms

39 How to prove it P(n) = “the sum of the first n powers of 2 (starting at 0) is 2n-1” Theorem: P(n) holds for all n ≥ 1 Proof: By induction on n Base case: n=1. Sum of first 1 power of 2 is 20 , which equals 1 = Inductive case: Assume the sum of the first k powers of 2 is 2k-1 Show the sum of the first (k+1) powers of 2 is 2k+1-1 Spring 2015 CSE 373: Data Structures and Algorithms

40 CSE 373: Data Structures and Algorithms
How to prove it The sum of the first k+1 powers of 2 is (k-1) + 2k = 2(2k) -1 = 2k+1 - 1 sum of the first k powers of 2 by inductive hypothesis = 2k - 1 + 2k Spring 2015 CSE 373: Data Structures and Algorithms

41 CSE 373: Data Structures and Algorithms
Conclusion Mathematical induction is a technique for proving something is true for all integers starting from a small one, usually 0 or 1. A proof consists of three parts: 1. Prove it for the base case. 2. Assume it for some integer k. 3. With that assumption, show it holds for k+1 It can be used for complexity and correctness analyses. Spring 2015 CSE 373: Data Structures and Algorithms

42 End of Inductive Proofs!
Spring 2015 CSE 373: Data Structures and Algorithms

43 Powers of 2 A bit is 0 or 1 (just two different “letters” or “symbols”) A sequence of n bits can represent 2n distinct things For example, the numbers 0 through 2n-1 210 is 1024 (“about a thousand”, kilo in CSE speak) 220 is “about a million”, mega in CSE speak 230 is “about a billion”, giga in CSE speak Java: an int is 32 bits and signed, so “max int” is “about 2 billion” a long is 64 bits and signed, so “max long” is 263-1 Spring 2015 CSE 373: Data Structures and Algorithms

44 Therefore… Could give a unique id to…
Every person in the U.S. with 29 bits Every person in the world with 33 bits Every person to have ever lived with 38 bits (estimate) Every atom in the universe with bits So if a password is 128 bits long and randomly generated, do you think you could guess it? Spring 2015 CSE 373: Data Structures and Algorithms


Download ppt "CSE373: Data Structures and Algorithms Lecture 2: Proof by Induction"

Similar presentations


Ads by Google