CSCI2110 Tutorial 7: Recursion

Preview:

DESCRIPTION

CSCI2110 Tutorial 7: Recursion. Chow Chi Wang ( cwchow ‘at’ cse.cuhk.edu.hk). Disclaimer : Some of the animation in this presentation are taken from the slides by Wong Chung Hoi (Hollis ) , who was a TA in this course in the previous year. Recursion. Recursion. - PowerPoint PPT Presentation

Citation preview

CSCI2110 Tutorial 7:Recursion

Chow Chi Wang (cwchow ‘at’ cse.cuhk.edu.hk)

Disclaimer: Some of the animation in this presentation are taken from the slides by Wong Chung Hoi (Hollis), who was a TA in this course in the previous year.

Recursion

Recursion• Recursion is an important technique in computer science.

The key idea is to reduce a problem into the similar problems in simpler cases.

• In this tutorial, we will focus on how to setup the recurrence relations. We will discuss solving recurrence relations in next week tutorial.

• Tip: After setting up a recurrence relation, remember to test it’s correctness by trying some base cases.

Fibonacci Variation

(Q1) We have a single pair of rabbits (male and female) initially. Assume that:

• (a) the rabbit pairs are not fertile during their first month of life, but thereafter give birth to four new male/female pairs at the end of every month;

• (b) the rabbits will never die.

Let be the number of pairs of rabbits alive at the end of month . Find a recurrence relation for

Fibonacci VariationMonth 0

Month 1

Month 2

Month 3

Month 4

Key:

Baby rabbit pair

Fertile rabbit pair

()

()

()

()

()

Fibonacci Variation• Let be the number of baby rabbit pairs in month .• Let be the number of fertile rabbit pairs in month .

Note that we have:

,

where,

,

Therefore:

for , and .

Double Tower of Hanoi

(Q3) In this variation of the Tower of Hanoi, there are three poles in a row and disks, two of each of different sizes, where is any positive integer. Initially one of the poles contains all the disks placed on top of each other in pairs of decreasing size. Disks are transferred one by one from one pole to another with the following restrictions:

• (a) At no time may a larger disk be placed on top of a smaller disk;• (b) Any disk may be placed on top of another disk of the same size.

Let be the minimum number of moves needed to transfer a tower of disks from one pole to another. Find a recurrence relation for

Double Tower of Hanoi

A B C

disks

Suppose it takes steps to transfer disks

Double Tower of Hanoi

A B C

disks

# of moves:

Double Tower of Hanoi

A B C

# of moves:

Double Tower of Hanoi

A B C

# of moves:

Double Tower of Hanoi

A B C

# of moves:

Double Tower of Hanoi

A B C

# of moves:

Therefore :

Double Tower of HanoiWe have: , and .

Double Tower of Hanoi - Extension

A B C

(Q4) We now impose an extra constraint: if two disks are of the same size, we can only have the red disk on top of the grey disk, but not the other way. Find a recurrence relation for

disks

Double Tower of Hanoi - Extension

Suppose it takes steps to transfer disks

A B C

disks

Double Tower of Hanoi - Extension

A B C

disks

# of moves:

Double Tower of Hanoi - Extension

A B C

# of moves:

Double Tower of Hanoi - Extension

A B C

# of moves:

Double Tower of Hanoi - Extension

A B C

# of moves:

Double Tower of Hanoi - Extension

A B C

# of moves:

Double Tower of Hanoi - Extension

A B C

# of moves:

Double Tower of Hanoi - Extension

A B C

# of moves:

Double Tower of Hanoi - Extension

A B C

# of moves:

Therefore :

Double Tower of Hanoi - ExtensionWe have:, and .

Tower of Hanoi with Adjacency Requirement

(Q5) This variation of the Tower of Hanoi is essentially the same as the original Tower of Hanoi, but with an additional restriction that the disks are only allowed to be moved from one pole to an adjacent pole. Assume poles A and C are at the two ends of the row and pole B is in the middle. In this variation we are not allowed to move disks directly from pole A to pole C and vice versa.

Let be the minimum number of moves needed to transfer a tower of disks from one pole to another. Find a recurrence relation for

Tower of Hanoi with Adjacency Requirement

A B C

Direct moves from pole A to pole C and the opposite direction are not allowed!

Tower of Hanoi with Adjacency Requirement

A B C

disks

Suppose it takes steps to transfer disks from A to C

Tower of Hanoi with Adjacency Requirement

A B C

disks

# of moves:

Tower of Hanoi with Adjacency Requirement

A B C

# of moves:

Tower of Hanoi with Adjacency Requirement

A B C

# of moves:

Tower of Hanoi with Adjacency Requirement

A B C

# of moves:

Tower of Hanoi with Adjacency Requirement

A B C

# of moves:

Tower of Hanoi with Adjacency Requirement

A B C

# of moves:

Therefore :

We have:, and .

Tower of Hanoi with Adjacency Requirement

Catalan Number• Recall that the recurrence equation of the form

has a closed form

which is called the Catalan number

Triangulated Polygon• (Q6) Let be the number of ways to cut an sides convex

polygon into triangles by connecting vertices with non-intersecting straight lines. Show that , where is the -th Catalan number. The following hexagons illustrate the case :

Triangulated Polygon

• T1 = 1

• T2 = 2

• T3 = 5

Triangulated Polygon• Observation:

• If we fix an edge AB on a polygon, in the final cutting, this edge must form a triangle with other vertex.

• This triangle partition the polygon into 3 regions

A B

n = 4

Triangulated Polygon• Observation:

• Tn = T0 Tn-1, where T0 is defined to be 1.

A B

n = 4

Tn-1

T0

Triangulated Polygon• Observation:

• Tn = T0 Tn-1 + T1Tn-2

A B

n = 4

T1

Tn-2

Triangulated Polygon• Observation:

• Tn = T0 Tn-1 + T1Tn-2 + T2Tn-3 + …

A B

n = 4

T2Tn-3

Triangulated Polygon• Observation:

• The closed form is given by Catalan number .

A B

n = 4

T0

Tn-1

Summary• The key idea of recursion is to reduce a problem into the

similar problem in simpler cases.

• When setting up a recurrence relation, you assume problems in simpler cases can be solved. You then need to think about how these can help solving the problem.

• Tip: After setting up a recurrence relation, always remember to test it’s correctness by trying some base cases.

Thank You!

Recommended