login
Square array of generalized Ulam numbers U(n,k), n>=1, k>=2, read by antidiagonals: U(n,k) = n if n<=k; for n>k, U(n,k) = least number > U(n-1,k) which is a unique sum of k distinct terms U(i,k) with i<n.
10

%I #31 Oct 04 2018 19:52:06

%S 1,1,2,1,2,3,1,2,3,4,1,2,3,6,6,1,2,3,4,9,8,1,2,3,4,10,10,11,1,2,3,4,5,

%T 16,11,13,1,2,3,4,5,15,17,12,16,1,2,3,4,5,6,25,18,28,18,1,2,3,4,5,6,

%U 21,26,19,29,26,1,2,3,4,5,6,7,36,27,22,30,28,1,2,3,4,5,6,7,28,37,28,64,53,36

%N Square array of generalized Ulam numbers U(n,k), n>=1, k>=2, read by antidiagonals: U(n,k) = n if n<=k; for n>k, U(n,k) = least number > U(n-1,k) which is a unique sum of k distinct terms U(i,k) with i<n.

%C The columns are Ulam-type sequences - see A002858 for further information. Some of these sequences - but not all - seem to have quite simple generating functions.

%C U(k+1,k) = k*(k+1)/2.

%C U(k+2+j,k) = k^2+j for k>=3 and 0<=j<k.

%C U(2*k+2,k) = k*(3*k-1)/2 for k>=3.

%H Alois P. Heinz, <a href="/A183534/b183534.txt">Antidiagonals n = 1..87</a>

%H <a href="/index/U#Ulam_num">Index entries for Ulam numbers</a>

%e Square array U(n,k) begins:

%e 1, 1, 1, 1, 1, 1, ...

%e 2, 2, 2, 2, 2, 2, ...

%e 3, 3, 3, 3, 3, 3, ...

%e 4, 6, 4, 4, 4, 4, ...

%e 6, 9, 10, 5, 5, 5, ...

%e 8, 10, 16, 15, 6, 6, ...

%p b:= proc(n,i,k,h) option remember;

%p local t;

%p if n<0 or h<0 then 0

%p elif n=0 then `if`(h=0, 1, 0)

%p elif i=0 or h=0 then 0

%p elif h=1 then t:= v(n, k);

%p `if`(t>0 and t<=i, 1, 0)

%p else t:= b(n -U(i, k), i-1, k, h-1);

%p t+ `if`(t>1, 0, b(n, i-1, k, h))

%p fi

%p end:

%p v:= proc() 0 end:

%p U:= proc(n,k) option remember;

%p local m;

%p if n<=k then v(n,k):= n

%p else for m from U(n-1, k)+1

%p while b(m, n-1, k, k)<>1 do od;

%p v(m,k):= n; m

%p fi

%p end:

%p seq(seq(U(n, 2+d-n), n=1..d), d=1..12);

%t b[n_, i_, k_, h_] := b[n, i, k, h] = Module[{t}, Which[n < 0 || h < 0, 0, n == 0, If[h == 0, 1, 0], i == 0 || h == 0, 0, h == 1, t = v[n, k]; If[t > 0 && t <= i, 1, 0], True, t = b[n-U[i, k], i-1, k, h-1]; t+If[t > 1, 0, b[n, i-1, k, h]] ] ]; v[_, _] = 0; U[n_, k_] := U[n, k] = Module[{m}, If[n <= k, v[n, k] = n, For[m = U[n-1, k]+1, b[m, n-1, k, k] != 1, m++]; v[m, k] = n; m] ]; Table[Table[U[n, 2+d-n], {n, 1, d}], {d, 1, 12}] // Flatten (* _Jean-François Alcover_, Dec 23 2013, translated from Maple *)

%o (PARI)

%o Ulam(N,k=2,v=0)={ my( a=vector(k,i,i), c );

%o for( n=k,N-1, for( t=1+a[n],9e9, c=0;

%o forvec(v=vector(k,i,[i,n]),sum(j=1,k,a[v[j]])==t & c++>1 & next(2),2);

%o c|next; v&print1(t","); a=concat(a,t); break;

%o )); a}

%o /* _M. F. Hasler_ */

%Y Columns k=2-10 give: A002858, A007086, A183527, A183528, A183529, A183530, A183531, A183532, A183533.

%Y Cf. A135737.

%K nonn,tabl,look

%O 1,3

%A _Jonathan Vos Post_ and _Alois P. Heinz_, Jan 05 2011