Tutorial 11 of CSCI2110 Number of Sequence & Recursion Tutor: Zhou Hong (周宏) [email protected] Announcement • HW2 & HW3 has been marked, please pick them up. • HW4 will be returned in next Monday. Announcement • In your homework, you should declare your cooperators or cite references, this will not affect your grades. – Note: write your OWN solutions, do NOT just copy! • Fail to do so may be considered as plagiarism. – The same notation or the same term (e.g. “imaginary women”) are clues. Outline • Number of Sequence • Setup Recurrence Relations NUMBER OF SEQUENCE Warm Up Exercise What’s the next number? • a1 = -3, a2 = -1, a3 = 1, a4 = 3, … Answer: a5 = 5 • a1 = 3, a2 = 6, a3 = 12, a4 = 24, … Answer: a5 = 48 What about this one? • a1=1, a2=11, a3=21, a4=1211, a5=111221, a6=312211, a7=13112221, … Answer: a8=1113213211 • This is just for fun = ) Warm Up Exercise (Cont.) Write down the general formula of ai • a1 = -3, a2 = -1, a3 = 1, a4 = 3, … Answer: ai = a1 + (i-1)d = -3 + 2(i-1) = 2i - 5 • a1 = 3, a2 = 6, a3 = 12, a4 = 24, … Answer: ai = a1 q(i-1) = 3 x 2(i-1) Write down the closed form of the following partial sum ( 𝒏 𝒊=𝟏 𝒂𝒊 ) • a1 = -3, a2 = -1, a3 = 1, a4 = 3, …, ai = 2i – 5, … Arithmetic Sequence: 𝒏 𝒊=𝟏 𝒂𝒊 = 𝒂𝟏 +𝒂𝒏 𝒏 𝟐 = 𝟐𝒂𝟏 + 𝒏−𝟏 𝒅 𝒏 𝟐 • a1 = 3, a2 = 6, a3 = 12, a4 = 24, …, ai = 3 x 2(i-1), … Geometric Sequence: 𝒏 𝒊=𝟏 𝒂𝒊 = 𝒂𝟏 (𝟏−𝒒𝒏 ) 𝟏−𝒒 = 𝟑 × 𝟐𝒏 − 𝟑 = 𝒏𝟐 − 𝟒𝒏 Warm Up Exercise (Cont.) Evaluate the following summation (Hint: Telescoping Sum) • 𝑛 1 2 +8𝑘+3 4𝑘 𝑘=0 Answer: = 1 = 2 1 = 2 𝑛 1 𝑘=0 (2𝑘 + 1)(2𝑘 + 3) 𝑛 1 1 − 2𝑘 + 3 𝑘=0 2𝑘 + 1 1 𝑛+1 1− = 2𝑛 + 3 2𝑛 + 3 Future Value Given bank rate b unchanged, if we deposit $X now, how much will we have after n years? Now After 1 Year After 2 Years … After n Years $X $X * b $X * b2 … $X * bn Future Value: 1 dollar today will be worth bn dollars after n years. Current Value Given bank rate b unchanged, if we want to have $X after n years, how much should we deposit now? Now … After n-2 Years After n-1 Years After n Years $X / bn … $X / b2 $X / b $X Current Value: 1 dollar after n years is only worth 1 / bn dollars today. Mortgage Loan Suppose the bank rate is b and keeps unchanged. Now, we rise a mortgage loan of $X dollars to buy a house. We have to repay the loan in n years. What is the annual repayment $p. (assume repayment is made at the end of each year) Solution 1: Consider Future Value Year Amount to Be Repaid Now $X 1 year $X * b - $p 2 years ($X * b – $p) * b – $p = $X * b2 – $p * b – $p … … n years $X * bn – $p* bn-1 – … – $p * b – $p In order to repay the loan in n years, we must have $𝑋 ⋅ 𝑏 𝑛 − $𝑝 𝑛−1 𝑖=0 𝑏𝑖 = 0 ⇔ 𝑛 1 − 𝑏 $𝑋 ⋅ 𝑏 𝑛 − $𝑝 =0 1−𝑏 Therefore, in each year, we have to repay 𝑏 𝑛 (1 − 𝑏) $𝑝 = $𝑋 1 − 𝑏𝑛 Solution 2: Consider Current Value Year Current Value of Each Year’s Payment 1 year $p / b 2 years $p / b2 … … n years $p / bn The key observation is that the total current value should equal to $X. Let 𝑟 = 1 , 𝑏 $𝑋 = 𝑛 𝑟(1 − 𝑟 ) 𝑖 $𝑝 ⋅ 𝑟 = $𝑝 1−𝑟 𝑖=1 𝑛 Therefore, in each year, we have to repay 1−𝑟 𝑏 𝑛 (1 − 𝑏) $𝑝 = $𝑋 = $𝑋 𝑛 𝑟(1 − 𝑟 ) 1 − 𝑏𝑛 RECURSION Disclaimer: Some of the slides in this section are taken from the slides by Chow Chi Wang, last year’s Tutor of CSCI2110. 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’s tutorial. • Tip: After setting up a recurrence relation, remember to test it’s correctness by trying some base cases. Fibonacci Variant 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 in the 𝑛-th month. Find a recurrence relation for 𝑟0 , 𝑟1 , 𝑟2 … Fibonacci Variant Initiation (𝑟0 = 1) Month 1 (𝑟1 = 1) Month 2 (𝑟2 = 5) (𝑟3 = 9) Month 3 Month 4 (𝑟4 = 29) Key: Baby rabbit pair Fertile rabbit pair Fibonacci Variant • Let 𝑏𝑛 be the number of baby rabbit pairs in the 𝑛-th month. • Let 𝑓𝑛 be the number of fertile rabbit pairs in the 𝑛-th month. Note that we have: where, 𝑟𝑛 = 𝑓𝑛 + 𝑏𝑛 , 𝑓𝑛 = 𝑓𝑛−1 + 𝑏𝑛−1 = 𝑟𝑛−1 , 𝑏𝑛 = 4 ∗ 𝑓𝑛−1 = 4 ∗ 𝑟𝑛−2 Therefore: 𝑟𝑛 = 𝑟𝑛−1 + 4 ∗ 𝑟𝑛−2 for 𝑛 ≥ 2, and 𝑟0 = 𝑟1 = 1. The Josephus Problem Flavius Josephus is a Jewish historian living in the 1st century. During the Jewish-Roman war, he and his 40 soldiers were trapped in a cave, the exit of which was blocked by Romans. The soldiers chose suicide over capture and decided that they would form a circle and proceeding around it, to kill every third remaining person until no one was left. However, Josephus wanted none of this suicide nonsense. His task is to choose a place in the initial circle so that he is the last one remaining and so survive. The Josephus Problem in General Form There are n people numbered 1 to n around a circle. Start with people #1, eliminate every j-th remaining people until only one survives. The task is to find the survivor’s initial number. A simple case with n=10 and j=2: The elimination order: 2, 4, 6, 8, 10, 3, 7, 1, 9. So, people #5 is the survivor. The Case of j=2 Let J(n) be the survivor’s number when start with n people. If n is a even number, we have J(2k) = 2J(k) – 1, for k >= 1. If n is a odd number, we have J(2k+1) = 2J(k) + 1, for k >= 1. Base case, J(1) = 1. The General Value of j Consider eliminating people one by one. In the very beginning, the j-th people is eliminated, then we start the next count with the j+1-th people starting with people #1. J(n-1) is the survivor’s number in the remaining circle of n-1 people, starting with the j+1-th people in the initial circle. Then, the survivor is the (J(n-1)+j)-th people starting with people #1 in the initial circle. Note that, the position of the i-th people in the initial circle is ((i-1) mod n) + 1 , starting with people #1. Therefore, we have the following recurrence relation J(1) = 1, J(n) = ((J(n-1)+j-1) mod n) + 1, for n >= 2. Comparison of The Two Recurrence Relations J(1) = 1, J(n) = ((J(n-1)+j-1) mod n) + 1, for n >= 2. V. S. J(1) = 1, J(2k) = 2J(k) – 1, for k >= 1, J(2k+1) = 2J(k) + 1, for k >= 1. Thank You! Q&A?