Discrete Mathematics and its Applications

Slides:



Advertisements
Similar presentations
22C:19 Discrete Structures Induction and Recursion Spring 2014 Sukumar Ghosh.
Advertisements

22C:19 Discrete Structures Induction and Recursion Fall 2014 Sukumar Ghosh.
Induction and Recursion. Odd Powers Are Odd Fact: If m is odd and n is odd, then nm is odd. Proposition: for an odd number m, m k is odd for all non-negative.
10.1 CompSci 102© Michael Frank Today’s topics RecursionRecursion –Recursively defined functions –Recursively defined sets –Structural Induction Reading:
Based on Rosen, Discrete Mathematics & Its Applications, 5e Prepared by (c) Michael P. Frank Modified by (c) Haluk Bingöl 1/18 Module.
Recursion Rosen 5 th ed., § Recursion Sometimes, defining an object explicitly might be difficult.Sometimes, defining an object explicitly might.
Recursion. Recursive Definitions In recursive definitions, we define a function, a predicate, a set, or a more complex structure over an infinite domain.
Module #1 - Logic 1 Based on Rosen, Discrete Mathematics & Its Applications. Prepared by (c) , Michael P. Frank. Modified By Mingwu Chen Induction.
22C:19 Discrete Math Induction and Recursion Fall 2011 Sukumar Ghosh.
Induction and recursion
Discrete Mathematics Chapter 4 Induction and Recursion 大葉大學 資訊工程系 黃鈴玲 (Lingling Huang)
Discrete Mathematics and Its Applications Sixth Edition By Kenneth Rosen Chapter 4 Induction and Recursion 歐亞書局.
Chapter 4: Induction and Recursion
CSE 311 Foundations of Computing I Lecture 15 Recursive Definitions and Structural Induction Autumn 2011 CSE 3111.
© by Kenneth H. Rosen, Discrete Mathematics & its Applications, Sixth Edition, Mc Graw-Hill, 2007 Chapter 4 (Part 3): Mathematical Reasoning, Induction.
강원대학교 컴퓨터과학전공 문양세 이산수학 (Discrete Mathematics) 재귀 호출 (Recursion)
INDUCTION AND RECURSION. PRINCIPLE OF MATHEMATICAL INDUCTION To prove that P(n) is true for all positive integers n, where P(n) is a propositional function,
Module #14: Recursion Rosen 5 th ed., §§ In this class, we will study recursion, one of the most important topics in computer science. In the last.
이산수학 (Discrete Mathematics) 3.5 재귀 알고리즘 (Recursive Algorithms) 2006 년 봄학기 문양세 강원대학교 컴퓨터과학과.
Inductive Proofs. Mathematical Induction A powerful, rigorous technique for proving that a predicate P(n) is true for every natural number n, no matter.
Chapter 5 With Question/Answer Animations. Section 5.1.
1 Lecture 3.3: Recursion CS 250, Discrete Structures, Fall 2012 Nitesh Saxena Adopted from previous lectures by Cinda Heeren, Zeph Grunschlag.
ICS 253: Discrete Structures I Induction and Recursion King Fahd University of Petroleum & Minerals Information & Computer Science Department.
CompSci 102 Discrete Math for Computer Science March 13, 2012 Prof. Rodger Slides modified from Rosen.
6/12/2016 Prepared by Dr.Saad Alabbad1 CS100 : Discrete Structures Proof Techniques(2) Mathematical Induction & Recursion Dr.Saad Alabbad Department of.
Chapter 5 With Question/Answer Animations 1. Chapter Summary Mathematical Induction - Sec 5.1 Strong Induction and Well-Ordering - Sec 5.2 Lecture 18.
Section Recursion 2  Recursion – defining an object (or function, algorithm, etc.) in terms of itself.  Recursion can be used to define sequences.
Section Recursion  Recursion – defining an object (or function, algorithm, etc.) in terms of itself.  Recursion can be used to define sequences.
CSE 311 Foundations of Computing I Lecture 15 Strong Induction and Recursive Definitions Spring
Mathematical Induction And Recursion Discrete Math Team KS MATEMATIKA DISKRIT (DISCRETE MATHEMATICS ) 1.
Fall 2002CMSC Discrete Structures1 Chapter 3 Sequences Mathematical Induction Recursion Recursion.
Chapter 4: Induction and Recursion
Induction and recursion
Chapter 4 (Part 3): Mathematical Reasoning, Induction & Recursion
CS2210:0001Discrete Structures Induction and Recursion
Induction and Recursion
Recursively Defined Functions
Mathematical Induction Recursion
Chapter 5 Induction and Recursion
Discrete Structures for Computer Science
Rosen 5th ed., §3.2 ~9 slides, ~½ lecture
§7.3 Representing Relations Longin Jan Latecki
Discrete Mathematics and its Applications
Rosen 5th ed., §§ ~18 slides, ~1 lecture
Discrete Mathematics and its Applications
Induction: One Step At A Time
Induction: One Step At A Time
CS 250, Discrete Structures, Fall 2011 Nitesh Saxena
CSE 321 Discrete Structures
Applied Discrete Mathematics Week 9: Integer Properties
Rosen 5th ed., §3.2 ~9 slides, ~½ lecture
CS 250, Discrete Structures, Fall 2015 Nitesh Saxena
Chapter 4 Induction and Recursion
Discrete Mathematics and its Applications
Discrete Mathematics and its Applications
CS 250, Discrete Structures, Fall 2014 Nitesh Saxena
Rosen 5th ed., §§ ~18 slides, ~1 lecture
Discrete Mathematics and its Applications
Discrete Mathematics and its Applications
Discrete Mathematics and its Applications
Discrete Mathematics and its Applications
Discrete Mathematics and its Applications
Math/CSE 1019: Discrete Mathematics for Computer Science Fall 2011
Discrete Mathematics and its Applications
Induction: One Step At A Time
Discrete Mathematics and its Applications
Induction and recursion
§7.3 Representing Relations Longin Jan Latecki
CSE 311 Foundations of Computing I
Recursion.
Presentation transcript:

Discrete Mathematics and its Applications 2019-10-13 Yonsei Univ. at Wonju Dept. of Mathematics 이산수학 Discrete Mathematics Prof. Gab-Byung Chae Slides for a Course Based on the Text Discrete Mathematics & Its Applications (5th Edition) by Kenneth H. Rosen A word about organization: Since different courses have different lengths of lecture periods, and different instructors go at different paces, rather than dividing the material up into fixed-length lectures, we will divide it up into “modules” which correspond to major topic areas and will generally take 1-3 lectures to cover. Within modules, we have smaller “topics”. Within topics are individual slides. 2019-10-13 채갑병 (c)2001-2002, Michael P. Frank

Rosen 5th ed., §§3.4-3.5 ~18 slides, ~1 lecture Module #14: Recursion Rosen 5th ed., §§3.4-3.5 ~18 slides, ~1 lecture 2019-10-13 채갑병

§3.4: Recursive Definitions In induction, we prove all members of an infinite set have some property P by proving the truth for larger members in terms of that of smaller members. In recursive definitions, we similarly define a function, a predicate or a set over an infinite number of elements by defining the function or predicate value or set-membership of larger elements in terms of that of smaller ones. 2019-10-13 채갑병

Recursion Recursion is a general term for the practice of defining an object in terms of itself (or of part of itself). An inductive proof establishes the truth of P(n+1) recursively in terms of P(n). There are also recursive algorithms, definitions, functions, sequences, and sets. 2019-10-13 채갑병

Recursively Defined Functions Simplest case: One way to define a function f:NS (for any set S) or sequence an=f(n) is to: Define f(0). For n>0, define f(n) in terms of f(0),…,f(n−1). E.g.: Define the sequence an :≡ 2n recursively: Let a0 :≡ 1. For n>0, let an :≡ 2an-1. 2019-10-13 채갑병

Another Example Suppose we define f(n) for all nN recursively by: Let f(0)=3 For all nN, let f(n+1)=2f(n)+3 What are the values of the following? f(1)= f(2)= f(3)= f(4)= 9 21 45 93 2019-10-13 채갑병

Recursive definition of Factorial Give an inductive definition of the factorial function F(n) :≡ n! :≡ 23…n. Base case: F(0) :≡ 1 Recursive part: F(n) :≡ n  F(n-1). F(1)=1 F(2)=2 F(3)=6 2019-10-13 채갑병

The Fibonacci sequence The Fibonacci sequence fn≥0 is a famous sequence defined by: f0 :≡ 0, f1 :≡ 1, fn≥2 :≡ fn−1 + fn−2 1 1 2 3 5 8 13 Leonardo Fibonacci 1170-1250 2019-10-13 채갑병

Inductive Proof about Fib. sequence Theorem: fn < 2n. Proof: By induction. Base cases: f0 = 0 < 20 = 1 f1 = 1 < 21 = 2 Inductive step: Use 2nd principle of induction (strong induction). Assume k<n, fk < 2k. Then fn = fn−1 + fn−2 is < 2n−1 + 2n−2 < 2n−1 + 2n−1 = 2n. ■ Implicitly for all nN Note use of base cases of recursive def’n. 2019-10-13 채갑병

Recursively Defined Sets An infinite set S may be defined recursively, by giving: A small finite set of base elements of S. A rule for constructing new elements of S from previously-established elements. Implicitly, S has no other elements but these. Example: Let 3S, and let x+yS if x,yS. What is S? 2019-10-13 채갑병

The Set of All Strings Given an alphabet Σ, the set Σ* of all strings over Σ can be recursively defined as: ε  Σ* (ε :≡ “”, the empty string) w  Σ*  x  Σ → wx  Σ* Exercise: Prove that this definition is equivalent to our old one: Book uses λ 2019-10-13 채갑병

Recursive Algorithms (§3.5) Recursive definitions can be used to describe algorithms as well as functions and sets. Example: A procedure to compute an. procedure power(a≠0: real, nN) if n = 0 then return 1 else return a · power(a, n−1) 2019-10-13 채갑병

Efficiency of Recursive Algorithms The time complexity of a recursive algorithm may depend critically on the number of recursive calls it makes. Example: Modular exponentiation to a power n can take log(n) time if done right, but linear time if done slightly differently. Task: Compute bn mod m, where m≥2, n≥0, and 1≤b<m. 2019-10-13 채갑병

Modular Exponentiation Alg. #1 Uses the fact that bn = b·bn−1 and that x·y mod m = x·(y mod m) mod m. (Prove the latter theorem at home.) procedure mpower(b≥1,n≥0,m>b N) {Returns bn mod m.} if n=0 then return 1 else return (b·mpower(b,n−1,m)) mod m Note this algorithm takes Θ(n) steps! 2019-10-13 채갑병

Modular Exponentiation Alg. #2 Uses the fact that b2k = bk·2 = (bk)2. procedure mpower(b,n,m) {same signature} if n=0 then return 1 else if 2|n then return mpower(b,n/2,m)2 mod m else return (mpower(b,n−1,m)·b) mod m What is its time complexity? Θ(log n) steps 2019-10-13 채갑병

A Slight Variation Nearly identical but takes Θ(n) time instead! procedure mpower(b,n,m) {same signature} if n=0 then return 1 else if 2|n then return (mpower(b,n/2,m)· mpower(b,n/2,m)) mod m else return (mpower(b,n−1,m)·b) mod m The number of recursive calls made is critical. 2019-10-13 채갑병

Recursive Euclid’s Algorithm procedure gcd(a,bN) if a = 0 then return b else return gcd(b mod a, a) Note recursive algorithms are often simpler to code than iterative ones… However, they can consume more stack space, if your compiler is not smart enough. 2019-10-13 채갑병

Merge Sort procedure sort(L = 1,…, n) if n>1 then m := n/2 {this is rough ½-way point} L := merge(sort(1,…, m), sort(m+1,…, n)) return L The merge takes Θ(n) steps, and merge-sort takes Θ(n log n). 2019-10-13 채갑병

Merge Routine procedure merge(A, B: sorted lists) L = empty list i:=0, j:=0, k:=0 while i<|A|  j<|B| {|A| is length of A} if i=|A| then Lk := Bj; j := j + 1 else if j=|B| then Lk := Ai; i := i + 1 else if Ai < Bj then Lk := Ai; i := i + 1 else Lk := Bj; j := j + 1 k := k+1 return L Takes Θ(|A|+|B|) time 2019-10-13 채갑병