1 / 17

Lecture 3.3: Recursion

Lecture 3.3: Recursion. CS 250, Discrete Structures, Fall 2015 Nitesh Saxena. Adopted from previous lectures by Cinda Heeren, Zeph Grunschlag. Course Admin (10/27). HW3 will be posted by end of this week Covers “Induction and Recursion” (Chapter 5) Due on Thu, Nov 17

banksm
Download Presentation

Lecture 3.3: Recursion

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Course Admin (10/27) • HW3 will be posted by end of this week • Covers “Induction and Recursion” (Chapter 5) • Due on Thu, Nov 17 • Mid Term 2: Nov 10 (Tues) • Covers “Induction and Recursion” (Chapter 5) • Review Nov 5 (Thu) Lecture 3.3 -- Recursion

  3. Outline • Some practice: strong induction • Recursion • Recursive Functions and Definitions Lecture 3.3 -- Recursion

  4. 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] Lecture 3.3 -- Recursion

  5. 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. Lecture 3.3 -- Recursion

  6. 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. Lecture 3.3 -- Recursion

  7. 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! Lecture 3.3 -- Recursion

  8. 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! = Lecture 3.3 -- Recursion

  9. 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 Lecture 3.3 -- Recursion

  10. Recursive Functions: gcd Euclid’s algorithm makes use of the fact that gcd(x,y ) = gcd(y, xmod y) (here we assume that x > 0) Lecture 3.3 -- Recursion

  11. Recursive Definitions: Mathematical Notation Definition of summation notation: There is also a general product notation : Lecture 3.3 -- Recursion

  12. Recursive Definitions: Mathematical Notation Q: Find a recursive definition for the product notation Lecture 3.3 -- Recursion

  13. 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. Lecture 3.3 -- Recursion

  14. Recursive Case Base Case 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 Lecture 3.3 -- Recursion

  15. Countably infinite 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 *? Lecture 3.3 -- Recursion

  16. 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 Lecture 3.3 -- Recursion

  17. Today’s Reading • Rosen 5.3 Lecture 3.3 -- Recursion

More Related