OFFSET
0,2
COMMENTS
Here by a "square" we mean a string of the form xx, where x is any string, like the English word "hotshots".
EXAMPLE
For n = 4 the 10 strings are (0001)^2, (0010)^2, (0100)^2, (0110)^2, (0111)^2, and their complements.
PROG
(PARI)
MaxSquares(b, k)={if(b==0, k, my(r=-1); for(i=1, k, if(bitand(bitxor(b, b>>i), (1<<i)-1)==0, r=max(r, MaxSquares(b>>(2*i), k-i)))); if(r>=0, r+1, r))}
a(n)={my(s=0); for(i=0, 2^(n-1)-1, if(MaxSquares(bitor(i<<n, i), n)==1, s++)); 2*s} \\ Andrew Howroyd, Jun 18 2018
(Python)
from numba import njit
@njit() # comment out for n >= 32
def MS(b, k):
if b == 0: return k
r = -1
for i in range(1, k+1):
if ((b^(b>>i)) & ((1<<i)-1)) == 0:
r = max(r, MS(b>>(2*i), k-i))
return r+1 if r >= 0 else r
@njit() # comment out for n >= 32
def a(n):
s = 0
for i in range(int(2**(n-1))):
s += MS((i<<n)|i, n)==1
return 2*s
print([a(n) for n in range(18)]) # Michael S. Branicky, Dec 29 2020 after Andrew Hoyroyd
CROSSREFS
KEYWORD
nonn,more
AUTHOR
Jeffrey Shallit, Sep 17 2015
EXTENSIONS
Two more terms from Jeffrey Shallit, Dec 14 2015
a(12)-a(24) from Andrew Howroyd, Jun 18 2018
a(25)-a(31) from Michael S. Branicky, Dec 29 2020
STATUS
approved