recursion: introduction and...
TRANSCRIPT
![Page 1: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/1.jpg)
Recursion: Introduction and Correctness
CSE21 Winter 2017, Day 7 (B00), Day 4-5 (A00)
January 25, 2017
http://vlsicad.ucsd.edu/courses/cse21-w17
![Page 2: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/2.jpg)
Today’s Plan
From last time:
● intersecting sorted lists and tight bounds
New topic: Recursion
● recursive algorithms
● correctness of recursive algorithms
● solving recurrence relations
![Page 3: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/3.jpg)
Intersecting sorted lists: WHAT
Given two sorted lists
a1, a2, ..., an and b1, b2, ..., bn
determine if there are indices i,j such that
ai = bj
Design an algorithm to look for indices of intersection
![Page 4: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/4.jpg)
Intersecting sorted lists: HOW
Given two sorted lists
a1, a2, ..., an and b1, b2, ..., bn
determine if there are indices i,j such that
ai = bj
High-level description:
• Use linear search to see if b1 is anywhere in first list, using early abort
• Since b2>b1, start the search for b2 where the search for b1 left off
• And in general, start the search for bj where the search for bj-1 left off
![Page 5: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/5.jpg)
Intersecting sorted lists: HOW
![Page 6: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/6.jpg)
Intersecting sorted lists: WHY
To practice: trace examples &
generalize argument for correctness
![Page 7: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/7.jpg)
Intersecting sorted lists: WHEN
O(n)
Using product rule
O(1)
![Page 8: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/8.jpg)
Intersecting sorted lists: WHEN
O(n)
Using product rule
Total: O(n2)
![Page 9: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/9.jpg)
Intersecting sorted lists: WHEN
More careful analysis … Every time the while loop
condition is true, i is
incremented. If i ever
reaches n+1, the program
terminates (returns)
![Page 10: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/10.jpg)
Intersecting sorted lists: WHEN
More careful analysis …
This executes O(n) times
total (across all
iterations of for loop)
![Page 11: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/11.jpg)
Intersecting sorted lists: WHEN
More careful analysis …
Total: O(n)
This executes O(n) times
total (across all
iterations of for loop)
Be careful: product rule isn't always tight!
![Page 12: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/12.jpg)
What is recursion?
![Page 13: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/13.jpg)
What is recursion?
Solving a problem by
successively reducing it to the
same problem with
smallerinputs.
Rosen p. 360
![Page 14: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/14.jpg)
Strings and substrings
A string is a finite sequence of symbols such as 0s and 1s, written asb1 b2 b3 … bn
A substring of length k contains k consecutive symbols of the string,bi bi+1 bi+2 … bi+k-1
In how many places can we find 010 as a substring of 0100101000?
A. 1
B. 2
C.3
D.4
![Page 15: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/15.jpg)
Counting a pattern: WHAT
Problem: Given a string of 0s and 1s
b1 b2 b3 … bn
count how many times the substring 00 occurs in the string.
![Page 16: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/16.jpg)
Counting a pattern: HOW
Problem: Given a string of 0s and 1s
b1 b2 b3 … bn
count how many times the substring 00 occurs in the string.
Design an algorithm to solve this problem
![Page 17: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/17.jpg)
Counting a pattern: HOW
An Iterative Algorithm:
Step through each position and see if pattern starts there.
![Page 18: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/18.jpg)
Counting a pattern: HOW
A Recursive Algorithm:
Does pattern occur at the head? Then solve for the rest.
![Page 19: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/19.jpg)
Recursive vs. Iterative
This example shows that essentially the same algorithm can be
described as iterative or recursive.
But describing an algorithm recursively can give us new insights
and sometimes lead to more efficient algorithms.
It also makes correctness proofs more intuitive.
![Page 20: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/20.jpg)
Induction and recursion
Induction
A proof strategy where we prove
• The base case
• How to prove the statement is true
about n+1 if we get to assume that it is
true for n.
Recursion
A way of solving a problem
where we must give
• The base case
• How to solve a problem of size n+1,
assuming we can solve a problem of
size n.
![Page 21: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/21.jpg)
When should I use strong induction?
![Page 22: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/22.jpg)
Template for proving a recursive algorithm correct
![Page 23: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/23.jpg)
Template for proving correctness of recursive alg.
![Page 24: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/24.jpg)
Inside the inductive step
1. Express what the algorithm does in terms of the answers to
the recursive calls to smaller inputs.
2. Replace the answers for recursive calls with the correct
answers according to the problem (inductive hypothesis.)
3. Show that the result is the correct answer for the actual
input.
![Page 25: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/25.jpg)
Counting a pattern: WHY
![Page 26: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/26.jpg)
Proof of Base Case
![Page 27: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/27.jpg)
Proof: Inductive hypothesis
![Page 28: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/28.jpg)
Proof: Inductive step
![Page 29: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/29.jpg)
Proof: Conclusion
We showed the algorithm was correct for inputs of length 0 and 1. And
we showed that if it is correct for inputs of length k > 0, then it is correct
for inputs of length k + 1.
Therefore, by induction on the input length, the algorithm is correct for
all inputs of any length.
![Page 30: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/30.jpg)
Counting a pattern: WHEN
How long does this algorithm take?
It’s hard to give a direct answer because it seems we need to know
how long the algorithm takes to know how long the algorithm takes.
Solution: We really need to know how long the algorithm takes on
smaller instances to know how long it takes for larger lengths.
![Page 31: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/31.jpg)
Recurrences
A recurrence relation
(also called a recurrence or recursive formula)
expresses f(n)
in terms of previous values, such as
f(n-1), f(n-2), f(n-3)….Example:
f(n) = 3*f(n-1) + 7 tells us how to find f(n) from f(n-1)
f(1) = 2 also need a base case to tell us where to start
![Page 32: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/32.jpg)
Counting a pattern: WHEN
Let T(n) represent the time this algorithm takes on an input of length n.
Then T(n) = T(n-1) + c for some constant c.
Base cases: T(0) = T(1) = d
for some constant d.Why not use a specific number?
![Page 33: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/33.jpg)
Counting a pattern: WHEN
T(n) = T(n-1) + c
T(0) = T(1) = d
We can solve this recurrence by unraveling
to get an explicit closed form solution:
![Page 34: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/34.jpg)
Two ways to solve recurrences
1. Guess and Check
Start with small values of n and look for a pattern. Confirm your
guess with a proof by induction.
2. Unravel
Start with the general recurrence and keep replacing n with smaller
input values. Keep unraveling until you reach the base case.
find a closed form
![Page 35: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/35.jpg)
The Tower of Hanoi
Recursive solution:
1) Move the stack of the smallest n-1 disks to an empty pole.
2) Move the largest disk to the remaining empty pole.
3) Move the stack of the smallest n-1 disks to the pole with the largest disk.
How many moves? T(n) = # of moves to solve puzzle with n disks
![Page 36: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/36.jpg)
Tower of Hanoi: WHEN
A. T(n) = 2T(n-1)
B. T(n) = T(n-1) + 1
C. T(n) = n-1 + T(n)
D. T(n) = 2T(n-1) + 1
A. T(1) = 1
B. T(1) = 2
C. T(0) = 0
D. T(2) = 2
T(n) = # of moves to solve puzzle with n disks
Recurrence? Base case?
Recursive solution:
1) Move the stack of the smallest n-1 disks to an empty pole.
2) Move the largest disk to the remaining empty pole.
3) Move the stack of the smallest n-1 disks to the pole with the largest disk.
![Page 37: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/37.jpg)
Tower of Hanoi: WHEN
But what's the value of T(n)? Recurrence for T(n):
T(n) = 2T(n-1) + 1
T(1) = 1n T(n)
1 1
2
3
4
5
n
![Page 38: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/38.jpg)
Tower of Hanoi: WHEN
But what's the value of T(n)? Recurrence for T(n):
T(n) = 2T(n-1) + 1
T(1) = 1n T(n)
1 1
2 3
3 7
4 15
5 31
n ??Is there a pattern
we can guess?
![Page 39: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/39.jpg)
Tower of Hanoi: WHEN
Recurrence for T(n):
T(n) = 2T(n-1) + 1
T(1) = 1
Claim: For each positive int n, T(n) = 2n -1.
Proof by induction on n …
(Base case) If n = 1, then T(n) = 1 (according to the recurrence).
Plugging n = 1 into the formula gives T(1) = 21-1 = 2-1 = 1. ☺
After guessing, we check (i.e., validate)
![Page 40: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/40.jpg)
Tower of Hanoi: WHEN
Claim: For each positive int n, T(n) = 2n -1.
Proof by induction on n …
(Induction step) Suppose n is a positive integer greater than 1
and, as the induction hypothesis, assume that T(n-1) = 2n-1 -1. We
need to show that T(n) = 2n-1. From the recurrence,
T(n) = 2 T(n-1) + 1 = 2 ( 2n-1 – 1 ) + 1 = 2n – 2 + 1 = 2n – 1.
☺by the I.H.
Recurrence for T(n):
T(n) = 2T(n-1) + 1
T(1) = 1
![Page 41: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/41.jpg)
Tower of Hanoi: WHEN
Another method: “UNRAVEL” the recurrence: Recurrence for T(n):
T(n) = 2T(n-1) + 1
T(1) = 1
![Page 42: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/42.jpg)
Counting recursively
We can write recurrence relations to describe the number of ways
to do something, which is sometimes easier than counting the
number of ways directly.
Don’t forget the base case(s)!
How many are needed?
![Page 43: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/43.jpg)
Example – Binary strings avoiding 00
How many binary strings of length n are there which do not have two
consecutive 0s?
n OK NOT OK How many OK?
0
1
2
3
-
0, 1
01, 10, 11
010, 011, 101, 110,111
00
000, 001, 100
1
2
3
5
![Page 44: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/44.jpg)
Example – Binary strings avoiding 00
"OK" binary string of length n-1 "OK" binary string of length n-2
How many binary strings of length n are there which do not have two
consecutive 0s?
Recurrence?? B(n) = the number of OK strings of length n
Any (long) "OK" binary string must look like
1 or 01 .
![Page 45: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/45.jpg)
Example – Binary strings avoiding 00
How many binary strings of length n are there which do not have two
consecutive 0s?
Recurrence?? B(n) = B(n-1) + B(n-2) B(0) = 1, B(1)=2
Any (long) "OK" binary string must look like
1 or 01 .
"OK" binary string of length n-1 "OK" binary string of length n-2
B(n-1) B(n-2)
![Page 46: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/46.jpg)
Example – Binary strings avoiding 00
B(n) = B(n-1) + B(n-2) B(0) = 1, B(1)=2
n B(n)
0 1
1 2
2 3
3 5
4 8
5 13
n ??
Fibonacci
numbers
![Page 47: Recursion: Introduction and Correctnessvlsicad.ucsd.edu/courses/cse21-w17/Slides/week3/posted/day7_W17... · Recursion: Introduction and Correctness CSE21 Winter 2017, Day 7 ... D.T(2)](https://reader033.vdocuments.site/reader033/viewer/2022051508/5a9f70337f8b9a76178cd159/html5/thumbnails/47.jpg)
Announcements
MT1 is two weeks
from today !
Keep an eye out for
practice MT, review
session, etc.
HW3
Has been
assigned Due 1/31