login
Number of subsequences of {1..n} such that all differences of pairs of terms are distinct (i.e., number of Golomb rulers on {1..n}).
8

%I #32 Feb 15 2024 15:15:08

%S 1,3,6,12,21,35,56,90,139,215,316,462,667,961,1358,1918,2665,3693,

%T 5034,6844,9187,12365,16416,21786,28707,37721,49082,63920,82639,

%U 106721,136674,174894,222557,283107,357726,451574,567535,712855,890404,1112080,1382415

%N Number of subsequences of {1..n} such that all differences of pairs of terms are distinct (i.e., number of Golomb rulers on {1..n}).

%H Alois P. Heinz, <a href="/A054578/b054578.txt">Table of n, a(n) for n = 1..100</a>

%H <a href="/index/Go#Golomb">Index entries for sequences related to Golomb rulers</a>

%F a(n) = A143823(n) - 1. - _Carl Najafi_, Jan 16 2013

%e a(4) = 12: [1], [2], [3], [4], [1,2], [1,3], [1,4], [2,3], [2,4], [3,4], [1,2,4], [1,3,4]. - _Alois P. Heinz_, Jan 16 2013

%p b:= proc(n, s) local sn, m;

%p if n<1 then 1

%p else sn:= [s[], n]; m:= nops(sn);

%p `if` (m*(m-1)/2 = nops (({seq (seq (sn[i]-sn[j],

%p j=i+1..m), i=1..m-1)})), b(n-1, sn), 0) +b(n-1, s)

%p fi

%p end:

%p a:= proc(n) a(n):= b(n-1, [n]) +`if` (n=0, -1, a(n-1)) end:

%p seq(a(n), n=1..30); # _Alois P. Heinz_, Jan 16 2013

%t b[n_, s_List] := b[n, s] = Module[{sn, m}, If[n < 1, 1, sn = Append[s, n]; m = Length[sn]; If[m(m - 1)/2 == Length @ Union @ Flatten @ Table[ Table[ sn[[i]] - sn[[j]], {j, i + 1, m}], {i, 1, m - 1}], b[n - 1, sn], 0] + b[n - 1, s]]];

%t a[n_] := a[n] = b[n - 1, {n}] + If [n == 0, -1, a[n - 1]];

%t Table[Print[n, " ", a[n]]; a[n], {n, 1, 41}] (* _Jean-François Alcover_, Apr 28 2020, after _Alois P. Heinz_ *)

%Y Cf. A003022, A036501, A143823.

%Y Partial sums of A308251.

%K nonn

%O 1,2

%A _John W. Layman_, Apr 11 2000

%E More terms from _Carl Najafi_, Jan 15 2013