Iterator
DeBruijn
generate Lyndon words that form a de Bruijn sequence
Calling Sequence
Parameters
Options
Description
Examples
References
Compatibility
DeBruijn(n, m, opts)
n
-
nonnegint; maximum length of string
m
nonnegint; size of alphabet
opts
(optional) equation(s) of the form option = value; specify options for the DeBruijn command
compile = truefalse
True means compile the iterator. The default is true.
The DeBruijn command returns an iterator that generates m-ary Lyndon words, each with 0<length≤n, that together form a de Bruijn sequence.
A de Bruijn sequence is a sequence of the characters 0 to m−1, of length mn, that, when considered as a cycle, contains each string of length n exactly once.
Methods
In addition to the common iterator methods, this iterator object has the following methods. The self parameter is the iterator object.
Number(self): return the number of iterations required to step through the iterator, assuming it started at rank one.
with⁡Iterator:
Create an iterator that generates Lyndon words with maximum length 4 in an alphabet of 3 characters.
P≔DeBruijn⁡4,3:
Print⁡P,showrank:
1: 0 2: 0 0 0 1 3: 0 0 0 2 4: 0 0 1 1 5: 0 0 1 2 6: 0 0 2 1 7: 0 0 2 2 8: 0 1 9: 0 1 0 2 10: 0 1 1 1 11: 0 1 1 2 12: 0 1 2 1 13: 0 1 2 2 14: 0 2 15: 0 2 1 1 16: 0 2 1 2 17: 0 2 2 1 18: 0 2 2 2 19: 1 20: 1 1 1 2 21: 1 1 2 2 22: 1 2 23: 1 2 2 2 24: 2
Compute the number of iterations.
Combine the Lyndon words to form the de Bruijn sequence.
seq⁡seq⁡pk,k=1..length⁡P,p=P
0,0,0,0,1,0,0,0,2,0,0,1,1,0,0,1,2,0,0,2,1,0,0,2,2,0,1,0,1,0,2,0,1,1,1,0,1,1,2,0,1,2,1,0,1,2,2,0,2,0,2,1,1,0,2,1,2,0,2,2,1,0,2,2,2,1,1,1,1,2,1,1,2,2,1,2,1,2,2,2,2
Knuth, Donald Ervin. The Art of Computer Programming, volume 4, fascicle 2; generating all tuples and permutations, sec. 7.2.1.1, generating all n-tuples, pp. 26-27.
ibid, Algorithm F, prime and preprime string generation, p. 27.
The Iterator[DeBruijn] command was introduced in Maple 2020.
For more information on Maple 2020 changes, see Updates in Maple 2020.
The Iterator[DeBruijn] command was updated in Maple 2022.
The n and m parameters were updated in Maple 2022.
See Also
LyndonWord
Necklace
Prenecklace
Download Help Document