0% found this document useful (0 votes)
8 views23 pages

DS Lecture 13

The document outlines the concepts of recursion in discrete structures, including recursive definitions of functions, sequences, and sets. It provides examples of recursive functions such as factorial, Fibonacci numbers, and GCD calculations, along with exercises related to these topics. Additionally, it discusses recursively defined sets and their construction through basis and recursive steps.

Uploaded by

fa21-bse-123
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views23 pages

DS Lecture 13

The document outlines the concepts of recursion in discrete structures, including recursive definitions of functions, sequences, and sets. It provides examples of recursive functions such as factorial, Fibonacci numbers, and GCD calculations, along with exercises related to these topics. Additionally, it discusses recursively defined sets and their construction through basis and recursive steps.

Uploaded by

fa21-bse-123
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

Department Of Computer Science, CUI

Lahore Campus

CSC102 - Discrete Structures


By
Mahwish Waqas
10/30/2021 CSC102 - Discrete Structures 2

Lecture Outline

• Recursion
• Recursive definition of function
• Recursive definition of sequence
• Recursive definition of sets
10/30/2021 CSC102 - Discrete Structures 3

Recursive Objects
• Recursion is the process of repeating items in a self-
similar way.

• Sometimes it is difficult to define an object explicitly, but it


is easier to define it in terms of itself.
10/30/2021 CSC102 - Discrete Structures 4

Factorial Recursive Function

int factorial(int n)
{
if(n == 0)
return 1; Basis Step
else
return n * factorial(n - 1); Recursive Step
}
10/30/2021 CSC102 - Discrete Structures 5

Recursive Functions
• We can define a function recursively by specifying:
• Basis: the value of the function at the smallest element of the
domain.
• e.g. : f(0) = 1

• Recursive step: A rule for finding the value of the function at an


integer from its values at smaller integers.
• e.g. : f(n+1) = 2 * f(n)

• Many common functions can be defined recursively.


10/30/2021 CSC102 - Discrete Structures 6

Example
• Can you write n! as a recursive function
• F(0) = 1
• F(n) = n * F(n-1)
• What is the value of F(5)?

• F(5) = 5F(4)
= 5 . 4F(3)
= 5 . 4 . 3F(2)
= 5 . 4 . 3 . 2F(1)
= 5 . 4 . 3 . 2 . 1F(0)
= 5 . 4 . 3 . 2 . 1 . 1 = 120
10/30/2021 CSC102 - Discrete Structures 7

Example
• Can you write n! as a recursive function
• F(0) = 1
• F(n) = n * F(n-1)
• What is the value of F(5)?

F (5) = 5 F (4) =
F (1) = 1
1*1
F (4) = 4 F (3)
=
F (2) = 2
2*1
F (3) = 3F (2)
F=(3) = 6
3*2
F (2) = 2 F (1)
F (1) = 1F (0) F=(4) = 24
4*6
F (0) = 1 =
F (5) = 120
5*24
10/30/2021 CSC102 - Discrete Structures 8

Example
Suppose that f is defined recursively by
• f(0) = 3,
• f(n+1) = 2f(n)+3. for n ≥ 1
Find f(3).
Solution:
f(3) = 2f(2) + 3 = 2(21) + 3 = 45
f(2) = 2f(1) + 3 = 2(9) + 3 = 21
f(1) = 2f(0) + 3 = 2(3) + 3 = 9
10/30/2021 CSC102 - Discrete Structures 9

Example
Suppose that f is defined recursively by
• f(0) = -1, f(1) = 2
• f(n+1) = f(n)+3f(n-1), for n ≥ 2
Find f(4).
Solution:
f(4) = f(3) + 3f(2) = 5 + 3(-1) = 2
f(3) = f(2) + 3f(1) = -1 + 3(2) = 5
f(2) = f(1) + 3f(0) = 2 + 3(-1) = -1
10/30/2021 CSC102 - Discrete Structures 10

Example
• Fibonacci Numbers
• F(0) = 0, F(1) = 1
• F(n) = F(n-1) + F(n-2) for n = 2, 3, 4,……
• Find the Fibonacci number F(4).
Solution:
F(4) = F(3) + F(2) = 2 + 1 = 3
F(3) = F(2) + F(1) =1 + 1 = 2
F(2) = F(1) + F(0) = 1 + 0 = 1
10/30/2021 CSC102 - Discrete Structures 11

Example
• Let a and b denote positive integers. Suppose a function
Q is defined recursively as follows:
• Find the value of Q(4,5) and Q(14,3).
• Find Q(55, 7).

0 if a < b
Q ( a, b) = 
 Q ( a − b, b ) + 1 if a ≥ b

=
Q(4,5) 0 if a < b
10/30/2021 CSC102 - Discrete Structures 12
10/30/2021 CSC102 - Discrete Structures 13
10/30/2021 CSC102 - Discrete Structures 14

Example
0 if a < b
Q ( a, b) = 
 Q ( a − b, b ) + 1 if a ≥ b
Q (14, =
3) Q (14 − 3, 3) +
= 1 Q (11, 3) + 1
=
Q (11, 3) Q (8, 3) + 1
Q=(8, 3) Q (5, 3) + 1
Q=(5, 3) Q (2, 3) + 1
Q (2, 3) = 0
Q (5, 3) = 0 + 1 = 1
Q (8, 3) = 1 + 1 = 2
Q (11, 3) = 2 + 1 = 3
Q (14, 3) = 3 + 1 = 4
10/30/2021 CSC102 - Discrete Structures 15

Recursive Algorithms
• An algorithm is called recursive if it solves a problem by
reducing it to a smaller instance of the same problem.
• Computing n!
int factorial(int n)
{ If (n==0; return 1;
else return n*factorial(n-1); }
• Computing GCD
gcd(a,b)
/* assumption a < b */
If a=0, then return b
Else return gcd(b mod a, a)
10/30/2021 CSC102 - Discrete Structures 16

Example

b if a = 0
GCD ( a, b) = 
GCD (b% a, a ) if a < b
Find GCD(30,108).

GCD (30,108) = GCD(108%30, 30)


=
GCD (18, 30) GCD (30%18,18)
=
GCD (12,18) GCD (18%12,12)
=
GCD (6,12) GCD (12%6, 6)
=
GCD (0, 6) 6
10/30/2021 CSC102 - Discrete Structures 17

Sequence
Find the explicit formula and recursive formula of following
sequence:
2,4,8,16,32,…

Explicit Formula: Recursive Formula:


a=2 Basis Step : a2 = 2a1
r=2 a1 = 2 a3 = 2a2
an = ar n −1 Recursive Step : a4 = 2a3
an = 2(2) n −1 an +1 = 2an 
an = 2n an +1 = 2an

After giving the first term, each term of the sequence can be defined
from the previous term.
10/30/2021 CSC102 - Discrete Structures 18

Sequence
Find the explicit formula and recursive formula of following
sequence:
5,10,15,20,25,…

Explicit Formula: Recursive Formula:


a=5 a=
2 a1 + 5
Basis Step :
d =5 a= a2 + 5
a1 = 5 3

an =a + (n − 1)d Recursive Step : a=


4 a3 + 5
an =5 + (n − 1)5 an += an + 5 
1
an = 5n an += an + 5
1

After giving the first term, each term of the sequence can be defined
from the previous term.
10/30/2021 CSC102 - Discrete Structures 19
10/30/2021 CSC102 - Discrete Structures 20

Recursively Defined Sets


• Assume S is a set.
• We use two steps to define the elements of S.
• Basis step:
• Specify an initial collection of elements.
• Recursive step:
• Give a rule for forming new elements from those
already known to be in S.
10/30/2021 CSC102 - Discrete Structures 21

Recursively Defined Sets


• Consider S ⊆ Z defined by
• Basis step: (Specify initial elements.)
• 0∈S
• Recursive step: (Give a rule using existing elements)
• If x ∈ S, then 2x + 2 ∈ S.

• # of elements in set S after applying 3 time recursion


•0
• 0, 2 (1st)
• 0, 2, 6 (2nd)
• 0, 2, 6, 14 (3rd)
10/30/2021 CSC102 - Discrete Structures 22

Recursively Defined Sets


• Consider S ⊆ Z defined by
• Basis step: (Specify initial elements.)
• 3∈S
• Recursive step: (Give a rule using existing elements)
• If x ∈ S and y ∈ S, then x + y ∈ S.
• # of elements in set S after applying 3 time recursion
•3
• 3, 6 (1st)
• 3, 6, 9, 12 (2nd)
• 3, 6, 9, 12, 15, 18, 21, 24 (3rd)
• This is the set of all positive multiples of 3.
10/30/2021 CSC102 - Discrete Structures 23

Exercise Questions

Chapter # 5
Topic # 5.3
Q. 1, 2, 3, 4, 7, 27-a, 48 (Ackermann’s Function), 51

You might also like