Cut-Down de Bruijn Sequences
A cut-down de Bruijn sequence is a cyclic string of length L, where 1 ≤ L ≤ k^n, such that every substring of length n appears at most once. Etzion [Theor. Comp. Sci 44 (1986)] gives an algorithm to construct binary cut-down de Bruijn sequences that requires o(n) simple n-bit operations per symbol generated. In this paper, we simplify the algorithm and improve the running time to 𝒪(n) time per symbol generated using 𝒪(n) space. We then provide the first successor-rule approach for constructing a binary cut-down de Bruijn sequence by leveraging recent ranking algorithms for fixed-density Lyndon words. Finally, we develop an algorithm to generate cut-down de Bruijn sequences for k>2 that runs in 𝒪(n) time per symbol using 𝒪(n) space after some initialization. While our k-ary algorithm is based on our simplified version of Etzion's binary algorithm, a number of non-trivial adaptations are required to generalize to larger alphabets.
READ FULL TEXT