190 likes | 330 Views
Chapter 8. Recursion. 8.1. Recursively Defined Sequences. Recursion. A Sequence can be defined as: informally be providing a few terms to demonstrate the pattern, i.e. 3, 5, 7, …. give an explicit formula for it nth term, i.e. or, by recursion which requires a recurrence relation.
E N D
Chapter 8 Recursion
8.1 Recursively Defined Sequences
Recursion • A Sequence can be defined as: • informally be providing a few terms to demonstrate the pattern, i.e. 3, 5, 7, …. • give an explicit formula for it nth term, i.e. • or, by recursion which requires a recurrence relation.
Defining Recursion • Recursion requires • recurrence relation relates later terms in the sequence to earlier terms and • initial conditions, values of the first few terms of the sequence. • Example b0, b1, b2, … For all integers k>= 2, • bk = bk-1 + bk-2 (recurrence relation) • b0 = 1, b1 = 3 (initial conditions) b2 = b2-1 + b2-2 = b1 + b0 = 3 + 1 = 4 b3 = b3-1 + b3-2 = b2 + b1 = 4 + 3 = 7 b5 = b5-1 + b5-2 = b4 + b3 = 11 + 7 = 18
Recursion • Definition: • A recurrence relation for a sequence a0, a1, a2,… is a formula that relates each term ak to ceratin of its predecessors ak-1, ak-2, … , ak-I, where I is an integer and k is any integer greater than or equal to i. • The initial conditions for such a recurrence relation specify the values of a0, a1, a2,…,ai-1, if I is a fixed integer, or a0, a1, a2,…,am, where m is an integer with m>=0, if i depends on k.
Example • Computing terms • Recursive sequence ck, for all integers k >=2, find c2, c3, c4 • ck = ck-1 + k ck-2 + 1 (recurrence relation) • c0 = 1 and c1 = 2 (initial conditions) c2 = c2-1 + 2*c2-2 + 1 = c1 + 2*c0 + 1 = 2 + 2*1 + 1 = 5 c3 = c3-1 + 3*c3-2 + 1 = c2 + 3*c1 + 1 = 5 + 3*2 + 1 = 12 c4 = c4-1 + 4*c4-2 + 1 = c3 + 4*c2 + 1 = 10 + 4*12 + 1 = 59
Equivalent Recursion • There is more than one way to setup a recursive sequence! • for all k>=1, sk = 3sk-1 – 1 • for all k>=0, sk+1 = 3sk – 1 • Are the two sequences equivalent? • show the results of the sequence for terms: • starting at k = 1: s1 = 3s0 – 1, s2 = 3s1 – 1, s3 = 3s2 – 1 • starting at k = 0: s0+1 = 3s0 – 1, s1+1 = 3s1 – 1, … • change first term to second by adjusting first k • for all k>=1, sk = 3sk-1 – 1 => k start at 0 (k≥0) sk+1 =3sk – 1 • same as the second form.
Example • Show that sequence given satisfies a recurrence relation: • 1, -1!, 2!, -3!, 4!, …, (-1)nn!, …, for n≥0 is equivalent to sk = (-k)sk-1 for k≥1 • General term of the seqsn starting with s0 = 1, then sn = (-1)nn! for n≥0 • substitute for k and k-1: sk = (-1)kk! , sk-1 = (-1)k-1(k-1)! (-k)sk-1 = (-k)[(-1)k-1(k-1)!] (sk defined above) = (k)(-1)(-1)k-1(k-1)! = (k)(-1)k(k-1)! = (-1)k(k)(k-1)! = (-1)kk! = sk
Solving Recursive Problems • To solve a problem recursively means to find a way to break it down into smaller subproblems each having the same form as the original problem.
Towers of Hanoi • Problem statement: eight disks with holes in the center that are stacked from largest diameter to smallest on the first of three poles. Move the stacked disk from one pole to another. • Rules: a larger disk cannot be placed on top of a smaller disk at any time.
Towers of Hanoi • Recursive Solution • Transfer the top k-1 disks from pole A to pole B. (Note: k>2 requires a number of moves.) • Move the bottom disk from pole A to pole C. • Transfer the top k-1 disks from pole B to pole C. (Again, if k>2, execution of this step will require more than one move.)
Towers of Hanoi For each integer n≥1, mn = min num of moves to transfer a tower of n disks from one pole to another. position a to position b = mk-1, position b to c = 1 move, position c to position d = mk-1 moves. mk = mk-1 + 1 + mk-1 = 2mk-1 + 1, integers k≥2 initial condition: m1 = [move one disk to another pole] = 1
Towers of Hanoi • mk = 2mk-1 + 1 (recurrence relation) • m1 = 1 (initial condition) m2 = 2m1 + 1 = 3 m3 = 2m2 + 1 = 7 m4 = 2m3 + 1 = 15 … m6 = 2m5 + 1 = 63
Fibonacci • Leonardo of Pisa was the greatest mathematician of the 13th century. • Proposed the following problem: • A single pair of rabbits (male/female) is born at the beginning of a year. Assuming the following conditions: • Rabbit pairs are not fertile during their first month of life but thereafter give birth to one new male/female pair at the end of every month. • No rabbits die • How many rabbits will there be at the end of the year?
Fibonacci • To solve the problem you can hand compute for each of the 12 months. • m1 = 1, m2 = 1, m3 = 2, m4 = 3, m5 = 5, … m11 = 144, m12 = 233
Fibonacci • for n ≥1, Fn= num of pairs alive at month n • F0 = the initial number of pairs • F0 = 1 • Fk = Fk-1 + Fk-2 • Fibonacci Sequence • Fk = Fk-1 + Fk-2 (recurrence relation) • F0 = 1, F1 = 1 (initial condition) F2 = F1 + F0 = 1+1 = 2 F3 = F2 + F1 = 2+1 = 3 F4 = F3 + F2 = 3+2 = 5 … F12 = F11 + F10 = 144 + 89 = 233
Compound Interest • Compute compound interest on principle value using recursive sequence. • $100,000 principle, earning 4% per year, how much would you have in 21 years. An = amt in account at end of year n A0 = initial amount (principle) Ak = Ak-1 + (0.04)*Ak-1 Ak = (1.04)*Ak-1
Compound Interests • Compounding multiple times a year • interest is broken up of over the year based on the number of compounding periods • example 3% compounded quarterly • 3%/4 = .03/4 = 0.0075 (interest rate per period) • interest earned during kth period = Pk-1(i/m) • Pk = Pk-1 + Pk-1 (i/m) = Pk-1(1 + i/m)
Example • Given $10,000, How much will the account be work at the end of one year with a interest rate of 3% compounded quarterly? • Pk= Pk-1 (1+0.0075) = Pk-1(1.0075), integers k≥1 • P0 = 10,000 • P1 = 1.0075*P0=1.0075*10,000 =10,075.00 • P2 = 10,150.56 • P3 = 10,226.69 • P4 = 10,303.39