login
a(n) is the smallest integer such that the sum of any three ordered terms a(k), k <= n, is unique.
15

%I #36 Mar 01 2024 14:15:45

%S 0,1,4,13,32,71,124,218,375,572,744,1208,1556,2441,3097,4047,5297,

%T 6703,7838,10986,12331,15464,19143,24545,28973,34405,37768,45863,

%U 50876,61371,68302,77917,88544,101916,122031,131624,148574,171236,197814

%N a(n) is the smallest integer such that the sum of any three ordered terms a(k), k <= n, is unique.

%H Chai Wah Wu, <a href="/A051912/b051912.txt">Table of n, a(n) for n = 0..225</a> (terms 0..100 from Robert Israel)

%e Three terms chosen from {0,1,4} can be 0+0+0; 0+0+1; 0+1+1; 1+1+1; 0+0+4; 0+1+4; 1+1+4; 0+4+4; 1+4+4; 4+4+4 are all distinct (3*4*5/6 = 10 terms), so a(2) = 4 is the next integer of the sequence after 0 and 1.

%p A[0]:= 0: S:= {0}: S2:= {0}: S3:= {0}:

%p for i from 1 to 40 do

%p for x from A[i-1] do

%p if (map(t -> t+x,S2) intersect S3 = {}) and (map(t -> t+2*x, S) intersect S3 = {}) then

%p A[i]:= x;

%p S3:= S3 union map(t -> t+x,S2) union map(t -> t+2*x, S) union {3*x};

%p S2:= S2 union map(t -> t+x, S) union {2*x};

%p S:= S union {x};

%p break

%p fi

%p od

%p od:

%p seq(A[i],i=0..40); # _Robert Israel_, Jul 01 2019

%t a[0] = 0; a[1] = 1; a[n_] := a[n] = For[A0 = Array[a, n, 0]; an = a[n-1] + 1, True, an++, A1 = Append[A0, an]; A2 = Flatten[Table[A1[[{i, j, k}]], {i, 1, n+1}, {j, i, n+1}, {k, j, n+1}], 2]; A3 = Sort[Total /@ A2]; If[Length[A3] == Length[Union[A3]], Return[an]]]; Table[an = a[n]; Print["a(", n, ") = ", an]; an, {n, 0, 38}] (* _Jean-François Alcover_, Nov 24 2016 *)

%o (Python)

%o from itertools import count, islice

%o def A051912_gen(): # generator of terms

%o aset1, aset2, aset3, alist = set(), set(), set(), []

%o for k in count(0):

%o bset2, bset3 = {k<<1}, {3*k}

%o if 3*k not in aset3:

%o for d in aset1:

%o if (m:=d+(k<<1)) in aset3:

%o break

%o bset2.add(d+k)

%o bset3.add(m)

%o else:

%o for d in aset2:

%o if (m:=d+k) in aset3:

%o break

%o bset3.add(m)

%o else:

%o yield k

%o alist.append(k)

%o aset1.add(k)

%o aset2 |= bset2

%o aset3 |= bset3

%o A051912_list = list(islice(A051912_gen(),20)) # _Chai Wah Wu_, Sep 01 2023

%Y Row 3 of A365515.

%Y Cf. A025582, A036241, A062065.

%K nonn,nice

%O 0,3

%A _Wouter Meeussen_, Dec 17 1999

%E More terms from _Naohiro Nomoto_, Jul 22 2001