|
|
A320434
|
|
Number of length-n quasiperiodic binary strings.
|
|
3
|
|
|
0, 2, 2, 4, 4, 10, 10, 26, 22, 56, 68, 118, 126, 284, 274, 542, 604, 1144, 1196, 2284, 2340, 4600, 4876, 9010, 9280, 18286, 18476, 35546, 36886, 70320, 72092, 140578, 141736, 276812, 282694, 548164
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,2
|
|
COMMENTS
|
A length-n string x is quasiperiodic if some proper prefix t of x can completely cover x by shifting, allowing overlaps. For example, 01010010 is quasiperiodic because it can be covered by shifted occurrences of 010.
|
|
LINKS
|
|
|
FORMULA
|
|
|
EXAMPLE
|
For n = 5 the quasiperiodic strings are 00000, 01010, and their complements.
|
|
PROG
|
(C) See Links section.
(Python) # see links for faster, bit-based version
from itertools import product
def qp(w):
for i in range(1, len(w)):
prefix, covered = w[:i], set()
for j in range(len(w)-i+1):
if w[j:j+i] == prefix:
covered |= set(range(j, j+i))
if covered == set(range(len(w))):
return True
return False
def a(n):
return 2*sum(1 for w in product("01", repeat=n-1) if qp("0"+"".join(w)))
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,more
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|