Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 250, Discrete Structures, Fall 2014 Nitesh Saxena

Similar presentations


Presentation on theme: "CS 250, Discrete Structures, Fall 2014 Nitesh Saxena"— Presentation transcript:

1 CS 250, Discrete Structures, Fall 2014 Nitesh Saxena
Lecture 3.3: Recursion CS 250, Discrete Structures, Fall 2014 Nitesh Saxena Adopted from previous lectures by Cinda Heeren, Zeph Grunschlag

2 Course Admin Mid-Term 1 Graded To be distributed today
HW2 being graded Solution provided 4/7/2019 Lecture Recursion

3 Lecture 3.2: Induction and Strong Induction (contd)
Course Admin Overall grades Recall: they will be relative, based on overall performance of the class Further improvement possible in the upcoming HWs and two exams Please continue to work hard. It will pay off. Don’t hesitate to ask for extra help 4/7/2019 Lecture 3.2: Induction and Strong Induction (contd)

4 Course Admin HW3 posted Mid Term 2: Nov 4 (Tues)
Covers “Induction and Recursion” (Chapter 5) Due in Thu, Nov 6 Mid Term 2: Nov 4 (Tues) Review Oct 30 (Thu) 4/7/2019 Lecture Recursion

5 Outline Some practice: strong induction Recursion
Recursive Functions and Definitions 4/7/2019 Lecture Recursion

6 Strong Induction Example (Rosen)
Prove that every integer > 1 can be expressed as a product of prime numbers [This is referred to as the fundamental theorem of arithmetic] 4/7/2019 Lecture Recursion

7 Recursively Defined Sequences
Often it is difficult to express the members of an object or numerical sequence explicitly. EG: The Fibonacci sequence: {fn } = 0,1,1,2,3,5,8,13,21,34,55,… There may, however, be some “local” connections that can give rise to a recursive definition –a formula that expresses higher terms in the sequence, in terms of lower terms. EG: Recursive definition for {fn }: INITIALIZATION: f0 = 0, f1 = 1 RECURSION: fn = fn-1+fn-2 for n > 1. 4/7/2019 Lecture Recursion

8 Recursive Functions It is possible to think of any function with domain N as a sequence of numbers, and vice-versa. Simply set: fn =f (n) For example, our Fibonacci sequence becomes the Fibonacci function as follows: f (0) = 0, f (1) = 1, f (2) = 1, f (3) = 2,… Such functions can then be defined recursively by using recursive sequence definition. EG: INITIALIZATION: f (0) = 0, f (1) = 1 RECURSION: f (n) = f (n -1) +f (n -2), for n > 1. 4/7/2019 Lecture Recursion

9 Recursive Functions: Factorial
A simple example of a recursively defined function is the factorial function: n! = 1· 2· 3· 4 ···(n –2)·(n –1)·n i.e., the product of the first n positive numbers (by convention, the product of nothing is 1, so that 0! = 1). Q: Find a recursive definition for n! 4/7/2019 Lecture Recursion

10 Recursive Functions: Factorial
A:INITIALIZATION: 0!= 1 RECURSION: n != n · (n -1)! To compute the value of a recursive function, e.g. 5!, one plugs into the recursive definition obtaining expressions involving lower and lower values of the function, until arriving at the base case. EG: 5! = 4/7/2019 Lecture Recursion

11 Recursive Functions: Factorial
A:INITIALIZATION: 0!= 1 RECURSION: n != n · (n -1)! To compute the value of a recursive function, e.g. 5!, one plugs into the recursive definition obtaining expressions involving lower and lower values of the function, until arriving at the base case. EG: 5! = 5 · 4! = 5 · 4 · 3! = 5 · 4 · 3 · 2! = 5 · 4 · 3 · 2 · 1! = 5 · 4 · 3 · 2 · 1 · 0! = 120 4/7/2019 Lecture Recursion

12 Recursive Functions: gcd
Euclid’s algorithm makes use of the fact that gcd(x,y ) = gcd(y, x mod y) (here we assume that x > 0) 4/7/2019 Lecture Recursion

13 Recursive Definitions: Mathematical Notation
Definition of summation notation: There is also a general product notation : 4/7/2019 Lecture Recursion

14 Recursive Definitions: Mathematical Notation
Q: Find a recursive definition for the product notation 4/7/2019 Lecture Recursion

15 Recursive Definitions: Mathematical Notation
A: This is very similar to definition of summation notation. Note: Initialization is argument for “product of nothing” being 1, not 0. 4/7/2019 Lecture Recursion

16 Recursively Defined Sets
Our examples so far have been inductively defined functions. Sets can be defined inductively, too. Give an inductive definition of S = {x: x is a multiple of 3} 3  S x,y  S  x + y  S Base Case Recursive Case 4/7/2019 Lecture Recursion

17 Strings: Recursive Definition
Let  be a finite set called an alphabet. The set of strings on , denoted * is defined as:   *, where  denotes the null or empty string. If x  , and w  *, then wx  *, where wx is the concatenation of string w with symbol x. Example: Let  = {a, b, c}. Then * = {, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab,…} How big is *? Countably infinite 4/7/2019 Lecture Recursion

18 Length of a String: Recursive Definition
Recursive definition of the length of strings (the length of string w is |w|.): || = 0 If x  , and w  *, then |wx| = |w| + 1 4/7/2019 Lecture Recursion

19 Well Formed Formulae (WFF) for Propositions
A set of wff is defined as follows: T is a wff F is a wff p is a wff for any propositional variable p If p is a wff, then (p) is a wff If p and q are wffs, then (p  q), is a wff If p and q are wffs, then (p  q) is a wff For example, a statement like ((r)  (p  r)) can be proven to be a wff by arguing that (r) and (p  r) are wffs by recursion and then applying rule 5. 4/7/2019 Lecture Recursion

20 Today’s Reading Rosen 5.3 4/7/2019 Lecture Recursion


Download ppt "CS 250, Discrete Structures, Fall 2014 Nitesh Saxena"

Similar presentations


Ads by Google