Rosen 5th ed., §§ ~18 slides, ~1 lecture

Slides:



Advertisements
Similar presentations
Jessie Zhao Course page: 1.
Advertisements

22C:19 Discrete Structures Induction and Recursion Spring 2014 Sukumar Ghosh.
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.
1 Section 3.4 Recursive Definitions. 2 Recursion Recursion is the process of defining an object in terms of itself Technique can be used to define sequences,
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.
강원대학교 컴퓨터과학전공 문양세 이산수학 (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.
CS 103 Discrete Structures Lecture 13 Induction and Recursion (1)
Recursive Algorithm (4.4) An algorithm is called recursive if it solves a problem by reducing it to an instance of the same problem with smaller input.
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.
1 Recursive Definitions and Structural Induction CS/APMA 202 Rosen section 3.4 Aaron Bloomfield.
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.
(Proof By) Induction Recursion
Chapter 4: Induction and Recursion
Induction and recursion
CS2210:0001Discrete Structures Induction and Recursion
Induction and Recursion
Recursively Defined Functions
Mathematical Induction Recursion
CS 3343: Analysis of Algorithms
Discrete Structures for Computer Science
Rosen 5th ed., §3.2 ~9 slides, ~½ lecture
Discrete Mathematics and its Applications
CS201: Data Structures and Discrete Mathematics I
Module #7: Algorithmic Complexity
Data Structures Review Session
Induction: One Step At A Time
Induction: One Step At A Time
CS 250, Discrete Structures, Fall 2011 Nitesh Saxena
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
Module #13: Inductive Proofs
Discrete Mathematics and its Applications
Module #7: Algorithmic Complexity
Discrete Mathematics and its Applications
CS 250, Discrete Structures, Fall 2014 Nitesh Saxena
Rosen 5th ed., §§ ~18 slides, ~1 lecture
Application: Efficiency of Algorithms II
Math/CSE 1019: Discrete Mathematics for Computer Science Fall 2011
Discrete Mathematics and its Applications
Induction: One Step At A Time
Induction and recursion
CSE 311 Foundations of Computing I
Discrete Mathematics and its Applications
Recursion.
Presentation transcript:

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 12/3/2018 (c)2001-2003, Michael P. Frank

§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. 12/3/2018 (c)2001-2003, Michael P. Frank

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. 12/3/2018 (c)2001-2003, Michael P. Frank

Recursively Defined Functions Simplest case: One way to define a function f:NS (for any set S) or series 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 series an :≡ 2n recursively: Let a0 :≡ 1. For n>0, let an :≡ 2an-1. 12/3/2018 (c)2001-2003, Michael P. Frank

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 12/3/2018 (c)2001-2003, Michael P. Frank

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 12/3/2018 (c)2001-2003, Michael P. Frank

The Fibonacci Series The Fibonacci series fn≥0 is a famous series defined by: f0 :≡ 0, f1 :≡ 1, fn≥2 :≡ fn−1 + fn−2 1 1 2 3 5 8 13 Leonardo Fibonacci 1170-1250 12/3/2018 (c)2001-2003, Michael P. Frank

Inductive Proof about Fib. series 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. 12/3/2018 (c)2001-2003, Michael P. Frank

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? 12/3/2018 (c)2001-2003, Michael P. Frank

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 λ 12/3/2018 (c)2001-2003, Michael P. Frank

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) 12/3/2018 (c)2001-2003, Michael P. Frank

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. 12/3/2018 (c)2001-2003, Michael P. Frank

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! 12/3/2018 (c)2001-2003, Michael P. Frank

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 12/3/2018 (c)2001-2003, Michael P. Frank

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. 12/3/2018 (c)2001-2003, Michael P. Frank

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. 12/3/2018 (c)2001-2003, Michael P. Frank

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). 12/3/2018 (c)2001-2003, Michael P. Frank

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 12/3/2018 (c)2001-2003, Michael P. Frank