%I #25 Aug 19 2021 15:01:57
%S 2,2,6,10,22,44,92,178,362,724,1444,2888,5792,11616,23300,46670,93434,
%T 186988,374012,747976,1495656,2990440,5979368,11956444,23910164,
%U 47819272,95645168,191318496,382719072,765644448,1531761528,3064550802,6131253398,12266876820
%N Number of length-n binary strings s whose longest repeated suffix appears exactly twice in s.
%C By "longest repeated suffix" we mean the longest suffix that occurs in at least one other position in the string; occurrences may overlap. Thus the longest repeated suffix of "alfalfa" is "alfa".
%H Michael S. Branicky, <a href="/A284462/b284462.txt">Table of n, a(n) for n = 1..37</a>
%H Michael S. Branicky, <a href="/A284462/a284462.txt">Python program</a>
%e For n = 4 the exceptions are 0001 and 1110 (longest repeated suffix is empty); 0010 and 0100 (longest repeated suffix is 0, which appears three times); and 1011 and 1101 (longest repeated suffix is 1, which appears three times).
%p g:= proc(S) local m,n,t;
%p n:= nops(S);
%p for m from n-1 to 1 by -1 do
%p t:= nops(select(j -> S[1..m] = S[j..m+j-1], [$2..n-m+1]));
%p if t >= 1 then return evalb(t=1) fi;
%p od;
%p false
%p end proc:
%p f:= proc(n) add(`if`(g(convert(x,base,2)),2,0), x=2^(n-1)..2^n-1) end proc:
%p f(1):= 2:
%p map(f, [$1..20]); # _Robert Israel_, Mar 27 2017
%o (Python) # see link for faster version
%o from itertools import product
%o def ok(s):
%o for i in range(len(s)-1, 0, -1):
%o count = 1 + sum(s[j:].startswith(s[-i:]) for j in range(len(s)-i))
%o if count > 1: return count == 2
%o return False
%o def a(n):
%o if n == 1: return 2
%o return 2*sum(ok("1"+"".join(p)) for p in product("01", repeat=n-1))
%o print([a(n) for n in range(1, 17)]) # _Michael S. Branicky_, Aug 19 2021
%Y Cf. A059412, A284125.
%K nonn
%O 1,1
%A _Jeffrey Shallit_, Mar 27 2017
%E a(21)-a(32) from _Lars Blomberg_, Jun 06 2017
%E a(33) and beyond from _Michael S. Branicky_, Aug 19 2021
|