login
a(0)=a(1)=-1, a(2)=2; thereafter a(n) = a(n-1-a(n-1))+a(n-2-a(n-2)) unless a(n-1) <= n-1 or a(n-2) <= n-2 in which case the sequence terminates.
4

%I #19 Oct 02 2024 04:42:14

%S -1,-1,2,1,1,3,3,3,2,4,6,4,4,5,4,8,9,6,7,8,8,8,9,10,10,9,13,14,10,12,

%T 13,12,14,15,14,15,16,16,16,17,18,18,19,20,20,20,19,23,24,20,22,22,22,

%U 25,23,22,27,27,25,28,27,27,29,29,29,29,31,31,31,32,32,32,33,34,34,35,36,36,36,37,38,38,39,40,40,40,40,39,43,44,40,42,42,42

%N a(0)=a(1)=-1, a(2)=2; thereafter a(n) = a(n-1-a(n-1))+a(n-2-a(n-2)) unless a(n-1) <= n-1 or a(n-2) <= n-2 in which case the sequence terminates.

%D Higham, Jeff and Tanny, Stephen, A tamely chaotic meta-Fibonacci sequence. Twenty-third Manitoba Conference on Numerical Mathematics and Computing (Winnipeg, MB, 1993). Congr. Numer. 99 (1994), 67-94.

%H N. J. A. Sloane, <a href="/A240807/b240807.txt">Table of n, a(n) for n = 0..20000</a>

%H <a href="/index/Ho#Hofstadter">Index entries for Hofstadter-type sequences</a>

%p a:=proc(n) option remember;

%p if n = 0 then -1

%p elif n = 1 then -1

%p elif n = 2 then 2

%p else

%p if (a(n-1) <= n-1) and (a(n-2) <= n-2) then

%p a(n-1-a(n-1))+a(n-2-a(n-2));

%p else lprint("died with n =",n); return (-1);

%p fi;

%p fi; end;

%p [seq(a(n),n=0..100)];

%t a[n_] := a[n] = Switch[n, 0, -1, 1, -1, 2, 2, _,

%t If[a[n-1] <= n-1 && a[n-2] <= n-2,

%t a[n-1-a[n-1]] + a[n-2-a[n-2]],

%t Print["died with n =", n]; Return[-1]]];

%t Table[a[n], {n, 0, 100}] (* _Jean-François Alcover_, Oct 02 2024 *)

%o (Haskell)

%o a240807 n = a240807_list !! n

%o a240807_list = -1 : -1 : 2 : zipWith (+) xs (tail xs)

%o where xs = map a240807 $ zipWith (-) [1..] $ tail a240807_list

%o -- _Reinhard Zumkeller_, Apr 17 2014

%Y A006949 and A240808 have the same recurrence but different initial conditions.

%K sign

%O 0,3

%A _N. J. A. Sloane_, Apr 15 2014