login
Numerators of the fractional, multiplicative Van Eck Sequence f(n): for n >= 2, if there exists an m < n such that f(m) = f(n), take the largest such m. If f(n)=1, set f(n+1) = 1/(n-m); otherwise, if f(n) != 1, set f(n+1) = f(n)+f(m)(n-m). If no m exists such that a(m)= f(n), then set f(n+1)=1. Start with f(1)=1 and f(2)=0. a(n) = numerator(f(n)).
1

%I #23 Feb 11 2022 17:06:11

%S 1,0,1,1,1,1,3,1,1,1,1,3,1,1,2,1,1,4,1,1,4,16,1,1,1,1,8,1,1,10,1,1,4,

%T 52,1,1,13,1,1,8,1,1,4,44,1,1,11,1,1,8,88,1,1,2,80,1,1,5,1,1,4,1,1,4,

%U 88,440,1,1,1,1,45,1,1,11,1,1,4,56,1,1,6,1

%N Numerators of the fractional, multiplicative Van Eck Sequence f(n): for n >= 2, if there exists an m < n such that f(m) = f(n), take the largest such m. If f(n)=1, set f(n+1) = 1/(n-m); otherwise, if f(n) != 1, set f(n+1) = f(n)+f(m)(n-m). If no m exists such that a(m)= f(n), then set f(n+1)=1. Start with f(1)=1 and f(2)=0. a(n) = numerator(f(n)).

%e f(n) = [ 1, 0, 1, 1/2, 1, 1/2, 3/2, 1, 1/3, 1, …]

%t f[1]=1; f[n_]:=0; f2[n_]:=0; a[n_]:=Block[{q=f2[x]},If[q!=0, If[x==1,s[n]=1/(n-1-q),s[n]=((n-1-q)*(x))+x], s[n]=1]]; s[1]=1; s[2]=0; x=0; Do[x=a[n]; f2[x]=f[x]; f[x]=n, {n, 3, 100000}]; data=Numerator/@Table[s[n], {n, 1, 100000}];

%o (Python)

%o from fractions import Fraction

%o from itertools import count, islice

%o def rfind(lst, item): # find item in list before last index

%o idx = len(lst) - 2

%o while lst[idx] != None and lst[idx] != item: idx -= 1

%o return idx

%o def agen(): # generator of terms

%o f = [None, Fraction(1, 1), Fraction(0, 1)]

%o yield from [1, 0]

%o for n in count(2):

%o m = rfind(f, f[n])

%o if m > 0: fp = Fraction(1, n-m) if f[n] == 1 else f[n] + f[m]*(n-m)

%o else: fp = Fraction(1, 1)

%o f.append(fp)

%o yield fp.numerator

%o print(list(islice(agen(), 82))) # _Michael S. Branicky_, Jan 16 2022

%o (PARI) findm(list, n) = {forstep (m=n-1, 1, -1, if (list[m] == list[n], return(m))); return(0);}

%o listf(nn) = {my(list = List([1, 0])); for (n=3, nn, my(m = findm(list, n-1)); if (m, if (list[m] == 1, listput(list, 1/(n-1-m)), listput(list, list[n-1]*(n-m))), listput(list, 1););); Vec(list);}

%o listnum(nn) = apply(numerator, listf(nn)); \\ _Michel Marcus_, Jan 17 2022

%Y Cf. A350228, A350560 (denominators).

%K nonn,frac

%O 1,7

%A _Jasmine Miller_, Jan 05 2022