1 / 45

CSCI2110 Tutorial 7: Recursion

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.

jace
Télécharger la présentation

CSCI2110 Tutorial 7: 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. 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.

  2. Recursion

  3. 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.

  4. 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

  5. Fibonacci Variation Month 0 Month 1 Month 2 Month 3 Month 4 () () () () () Key: Baby rabbit pair Fertile rabbit pair

  6. 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 .

  7. 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

  8. Double Tower of Hanoi Suppose it takes steps to transfer disks B C A disks

  9. Double Tower of Hanoi # of moves: B C A disks

  10. Double Tower of Hanoi # of moves: B C A

  11. Double Tower of Hanoi # of moves: B C A

  12. Double Tower of Hanoi # of moves: B C A

  13. Double Tower of Hanoi # of moves: B C A Therefore :

  14. Double Tower of Hanoi We have: , and .

  15. Double Tower of Hanoi - Extension (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 B C A disks

  16. Double Tower of Hanoi - Extension Suppose it takes steps to transfer disks B C A disks

  17. Double Tower of Hanoi - Extension # of moves: B C A disks

  18. Double Tower of Hanoi - Extension # of moves: B C A

  19. Double Tower of Hanoi - Extension # of moves: B C A

  20. Double Tower of Hanoi - Extension # of moves: B C A

  21. Double Tower of Hanoi - Extension # of moves: B C A

  22. Double Tower of Hanoi - Extension # of moves: B C A

  23. Double Tower of Hanoi - Extension # of moves: B C A

  24. Double Tower of Hanoi - Extension # of moves: B C A Therefore :

  25. Double Tower of Hanoi - Extension We have:, and .

  26. 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 adjacentpole. 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 notallowed 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

  27. Tower of Hanoi with Adjacency Requirement Direct moves from pole A to pole C and the opposite direction are not allowed! A B C

  28. Tower of Hanoi with Adjacency Requirement Suppose it takes steps to transfer disks from A to C A B C disks

  29. Tower of Hanoi with Adjacency Requirement # of moves: A B C disks

  30. Tower of Hanoi with Adjacency Requirement # of moves: A B C

  31. Tower of Hanoi with Adjacency Requirement # of moves: A B C

  32. Tower of Hanoi with Adjacency Requirement # of moves: A B C

  33. Tower of Hanoi with Adjacency Requirement # of moves: A B C

  34. Tower of Hanoi with Adjacency Requirement # of moves: A B C Therefore :

  35. Tower of Hanoi with Adjacency Requirement We have:, and .

  36. Catalan Number • Recall that the recurrence equation of the form has a closed form which is called the Catalan number

  37. 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 -thCatalan number. The following hexagons illustrate the case :

  38. Triangulated Polygon • T1 = 1 • T2 = 2 • T3 = 5

  39. 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 n = 4 A B

  40. Triangulated Polygon • Observation: • Tn = T0 Tn-1, where T0 is defined to be 1. n = 4 • Tn-1 T0 A B

  41. Triangulated Polygon • Observation: • Tn = T0 Tn-1 + T1Tn-2 n = 4 Tn-2 T1 A B

  42. Triangulated Polygon • Observation: • Tn = T0 Tn-1 + T1Tn-2 + T2Tn-3 + … n = 4 T2 Tn-3 A B

  43. Triangulated Polygon • Observation: • The closed form is given by Catalan number . n = 4 Tn-1 T0 A B

  44. 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.

  45. Thank You!

More Related