login
a(n) is the largest k in an n_nacci(k) sequence (Fibonacci(k) for n=2, tribonacci(k) for n=3, etc.) such that n_nacci(k) >= 2^(k-n-1).
1

%I #57 Jan 29 2025 09:29:24

%S 6,12,25,48,94,184,363,719,1430,2851,5691,11371,22728,45443,90870,

%T 181724,363429,726839,1453658,2907295,5814566,11629107

%N a(n) is the largest k in an n_nacci(k) sequence (Fibonacci(k) for n=2, tribonacci(k) for n=3, etc.) such that n_nacci(k) >= 2^(k-n-1).

%C From _Frank M Jackson_, Jul 02 2023: (Start)

%C Define the n_nacci sequence, basically row n in A092921, with an offset of 0, n_nacci(k) = 0 for 0 <= k <= n-2 and n_nacci(n-1) = 1. Thereafter, n_nacci(k) for k >= n continues as the sum of its previous n terms.

%C This means that n_nacci(k) = 2^(k-n) for n <= k <= 2n-1. In the limit as n tends to infinity the n_nacci sequence after an initial large set of zeros followed by 1 has successive terms of ascending powers of 2.

%C As the n-acci constants, (A001622, A058265, A086088, A103814,...) are smaller than 2, for each n_nacci sequence there is a largest k such that n_nacci(k) >= 2^(k-n-1). (End)

%e For n=3, the tribonacci sequence is 0,0,1,1,2,4,7,...,149,274,504,... and the 13th term is 504 < 512 so a(n)=12 because 274 is greatest term >= 2^(12-3-1) = 256.

%p nAcci := proc(n,k)

%p option remember ;

%p if k <= n-2 then

%p 0;

%p elif k = n-1 then

%p 1;

%p else

%p add( procname(n,i),i=k-n..k-1) ;

%p end if;

%p end proc:

%p A202805 := proc(n)

%p local k ;

%p for k from n do

%p if nAcci(n,k) < 2^(k-n-1) then

%p return k-1;

%p end if;

%p end do:

%p end proc:

%p for n from 2 do

%p print(n,A202805(n)) ;

%p end do: # _R. J. Mathar_, Mar 11 2024

%t fib[n_, m_] := (Block[{nacci}, (Do[nacci[g]=0, {g, 0, m - 2}];

%t nacci[m-1]=1;nacci[p_] := (nacci[p]=Sum[nacci[h], {h, p-m, p-1}]);nacci[n])]);

%t crossover[q_] := (Block[{$RecursionLimit=Infinity}, (k=0;While[fib[k+q+1, q]>=2^k, k++];k+q)]);

%t Table[crossover[j], {j, 2, 12}]

%o (Python)

%o def nacci(n): # generator of n_nacci terms

%o window = [0]*(n-1) + [1]

%o yield from window

%o while True:

%o an = sum(window)

%o yield an

%o window = window[1:] + [an]

%o def a(n):

%o pow2 = 1

%o for k, t in enumerate(nacci(n)):

%o if k > n + 1: pow2 <<= 1

%o if 0 < t < pow2: return k-1

%o print([a(n) for n in range(2, 12)]) # _Michael S. Branicky_, Jan 29 2025

%Y Cf. A000045, A000073, A000078.

%K nonn,more

%O 2,1

%A _Frank M Jackson_, Dec 24 2011

%E Edited by _N. J. A. Sloane_, May 20 2023

%E There seems to be an error in the Comment. See "History" tab. - _N. J. A. Sloane_, Jun 24 2023

%E Removed musing about what might define "complete" sequences. - _R. J. Mathar_, Mar 11 2024

%E a(17)-a(23) from _Michael S. Branicky_, Jan 29 2025