OFFSET
0,3
LINKS
Chai Wah Wu, Table of n, a(n) for n = 0..225 (terms 0..100 from Robert Israel)
EXAMPLE
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.
MAPLE
A[0]:= 0: S:= {0}: S2:= {0}: S3:= {0}:
for i from 1 to 40 do
for x from A[i-1] do
if (map(t -> t+x, S2) intersect S3 = {}) and (map(t -> t+2*x, S) intersect S3 = {}) then
A[i]:= x;
S3:= S3 union map(t -> t+x, S2) union map(t -> t+2*x, S) union {3*x};
S2:= S2 union map(t -> t+x, S) union {2*x};
S:= S union {x};
break
fi
od
od:
seq(A[i], i=0..40); # Robert Israel, Jul 01 2019
MATHEMATICA
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 *)
PROG
(Python)
from itertools import count, islice
def A051912_gen(): # generator of terms
aset1, aset2, aset3, alist = set(), set(), set(), []
for k in count(0):
bset2, bset3 = {k<<1}, {3*k}
if 3*k not in aset3:
for d in aset1:
if (m:=d+(k<<1)) in aset3:
break
bset2.add(d+k)
bset3.add(m)
else:
for d in aset2:
if (m:=d+k) in aset3:
break
bset3.add(m)
else:
yield k
alist.append(k)
aset1.add(k)
aset2 |= bset2
aset3 |= bset3
CROSSREFS
KEYWORD
nonn,nice
AUTHOR
Wouter Meeussen, Dec 17 1999
EXTENSIONS
More terms from Naohiro Nomoto, Jul 22 2001
STATUS
approved