# Assignment #5

## Theme: Circular strings and De Bruijn cycles

Assigned: November 13, 2015.

Due: November 25, 2015.

Reminder: homework should be handed in should be in latex (or tex) at the beginning of class on the due date.

• Write a program to generate the binary strings from the no 00 problem (the Gray path) from the previous assignment. Analyze your program. This will be easier to do if you write your program recursively. If you can't do the analysis mathematically, then at least do it experimentally (e.g., graph of the amortized running time). If you didn't get the correct answer on the last assignment, see exercises 88 and 89. Strive for an algorithm that uses a constant amount of computation per string (CAT), in an amortized sense; i.e., so that the ratio (total work)/(number of strings) is a constant. Note that an algortihm need not be loopless to have the CAT property. Your solution might involve Fibonacci numbers, and you can use any known bounds or asymptotics of Fibonacci numbers in your solution (but let me know where you found the bound).

• (a) Write a program to generate all prime binary strings with no substring 00. Analyze your program using the same criteria as in the previous problem. If you can't do this mathematically, then at least do it experimentally. (b) How many strings are computed by your program for $n = 1,2,\ldots,20$? Look up this number in the OEIS. Prove the formula that you find there.

• On page 221 of my book, in the first paragraph, there is an implicit question about where two strings appear in their respective De Bruijn cycles. Answer that question by showing the successive primes that contain the strings as they would be output by our De Bruijn cycle algorithm.