login
Triangle T(n,k) read by rows in which n-th row gives the hook products of the partitions of n.
12

%I #22 Sep 23 2024 12:24:03

%S 1,1,2,2,3,6,6,8,8,12,24,24,20,24,24,30,30,120,120,45,72,72,80,80,144,

%T 144,144,144,720,720,144,144,240,240,252,336,336,360,360,360,360,840,

%U 840,5040,5040,448,576,576,630,630,720,720,960,1152,1152,1440,1440,1920

%N Triangle T(n,k) read by rows in which n-th row gives the hook products of the partitions of n.

%C Row n consists of the numbers n!/A060240(n,k) written in reverse order.

%H Alois P. Heinz, <a href="/A093784/b093784.txt">Rows n = 0..36, flattened</a>

%e Triangle T(n,k) begins:

%e 1;

%e 1;

%e 2, 2;

%e 3, 6, 6;

%e 8, 8, 12, 24, 24;

%e 20, 24, 24, 30, 30, 120, 120;

%e 45, 72, 72, 80, 80, 144, 144, 144, 144, 720, 720;

%e ...

%p H:=proc(pa) local F,j,p,Q,i,col,a,A: F:=proc(x) local i, ct: ct:=0: for i from 1 to nops(x) do if x[i]>1 then ct:=ct+1 else fi od: ct; end: for j from 1 to nops(pa) do p[1][j]:=pa[j] od: Q[1]:=[seq(p[1][j],j=1..nops(pa))]: for i from 2 to pa[1] do for j from 1 to F(Q[i-1]) do p[i][j]:=Q[i-1][j]-1 od: Q[i]:=[seq(p[i][j],j=1..F(Q[i-1]))] od: for i from 1 to pa[1] do col[i]:=[seq(Q[i][j]+nops(Q[i])-j,j=1..nops(Q[i]))] od: a:=proc(i,j) if i<=nops(Q[j]) and j<=pa[1] then Q[j][i]+nops(Q[j])-i else 1 fi end: A:=matrix(nops(pa),pa[1],a): product(product(A[m,n],n=1..pa[1]),m=1..nops(pa)); end: with(combinat): rev:=proc(a) [seq(a[nops(a)+1-i],i=1..nops(a))] end: seq(sort([seq(H(rev(partition(s)[q])),q=1..numbpart(s))]),s=1..9);

%p # second Maple program:

%p h:= proc(l) local n; n:= nops(l); mul(mul(1+l[i]-j+

%p add(`if`(l[k]>=j, 1, 0), k=i+1..n), j=1..l[i]), i=1..n) end:

%p g:= (n, i, l)-> `if`(n=0 or i=1, h([l[], 1$n]), `if`(i<1, 0,

%p seq(g(n-i*j, i-1, [l[], i$j]), j=0..n/i))):

%p T:= n-> sort([g(n, n, [])])[]:

%p seq(T(n), n=0..10); # _Alois P. Heinz_, Jan 07 2013

%t h[l_List] := With[{n = Length[l]}, Product[Product[1+l[[i]]-j+Sum[If[l[[k]] >= j, 1, 0], {k, i+1, n}], {j, 1, l[[i]]}], {i, 1, n}]]; g[1, 1, {}] = {1}; g[n_, i_, l_List] := If[n == 0 || i == 1, h[Join[l, Array[1&, n]]], If[i<1, 0, Flatten @ Table[g[n-i*j, i-1, Join[l, Array[i&, j]]], {j, 0, n/i}]]]; T[n_] := Sort[g[n, n, {}]]; Table[T[n], {n, 1, 10}] // Flatten (* _Jean-François Alcover_, Apr 29 2015, after _Alois P. Heinz_ *)

%Y Cf. A060240, A093716, A093764.

%K nonn,look,tabf

%O 0,3

%A _Emeric Deutsch_, May 17 2004