A317127 a(0) = a(1) = a(2) = 1; for n >= 3, a(n) = freq(a(n-1),n) + freq(a(n-3),n) where freq(i, j) is the number of times i appears in the terms a(0) .. a(j-1).
1, 1, 1, 6, 4, 4, 3, 3, 4, 5, 3, 6, 3, 8, 3, 10, 2, 6, 4, 5, 5, 7, 4, 8, 3, 11, 3, 14, 2, 9, 2, 6, 5, 7, 6, 9, 4, 11, 4, 14, 4, 16, 3, 16, 4, 17, 3, 18, 2, 13, 2, 10, 3, 15, 3, 22, 2, 17, 3, 18, 4, 22, 4, 22, 6, 17, 6, 14, 6, 16, 6, 18, 6, 20, 4, 22, 5, 17, 8, 8, 8, 10, 8, 12, 4, 19, 2, 20, 3, 20, 6, 24, 4
Offset: 0
Links
- Antti Karttunen, Table of n, a(n) for n = 0..65537
- Altug Alkan, A line graph of a(n) for n <= 500
Crossrefs
Cf. A316774.
Programs
-
Maple
b:= proc() 0 end: a:= proc(n) option remember; local t; t:= `if`(n<3, 1, b(a(n-1))+b(a(n-3))); b(t):= b(t)+1; t end: seq(a(n), n=0..100); # after Alois P. Heinz at A316774
-
Mathematica
c = <||>; f[n_] := If[KeyExistsQ[c,n],c[n],0]; a[n_] := a[n] = Block[{v}, v = If[n<3, 1, f[a[n-1]] + f[a[n-3]]]; If[f[v]>0, c[v] = c[v]+1, c[v]=1]; v]; Array[a, 93, 0] (* Giovanni Resta, Jul 24 2018 *)
-
PARI
up_to = 5000; listA317127off1(up_to) = { my(v = vector(up_to),c); v[1] = v[2] = v[3] = 1; for(n=4,up_to, c=0; for(k=1,(n-1), c += ((v[k]==v[n-1])+(v[k]==v[n-3]))); v[n] = c); (v); }; listA317127off1(up_to) = { my(v = vector(up_to), m = Map(), c); v[1] = v[2] = v[3] = 1; mapput(m, 1, 3); for(n=4,up_to, c = (mapget(m, v[n-1])+mapget(m,v[n-3])); v[n] = c; mapput(m, c, if(!mapisdefined(m, c), 1, 1+mapget(m, c)))); (v); }; \\ Faster! v317127 = listA317127off1(1+up_to); A317127(n) = v317127[1+n]; \\ Antti Karttunen, Jul 23 2018
Comments