login
T(n,k,s) is the number of parts of each size in the set of partitions of an n X k rectangle into integer-sided squares with side s, considering only the list of parts; irregular triangle T(n,k,s), n >= k >= s >= 1, read by rows.
1

%I #42 Oct 27 2023 22:06:07

%S 1,2,4,1,3,8,1,14,1,1,4,12,3,27,3,1,47,10,1,1,5,18,3,41,4,2,85,13,3,1,

%T 134,16,4,1,1,6,24,6,62,7,4,135,27,5,3,250,40,13,3,1,415,82,24,6,1,1,

%U 7,32,6,87,9,5,204,34,8,4,381,53,18,5,3,717,127,45,13,4,1

%N T(n,k,s) is the number of parts of each size in the set of partitions of an n X k rectangle into integer-sided squares with side s, considering only the list of parts; irregular triangle T(n,k,s), n >= k >= s >= 1, read by rows.

%H Alois P. Heinz, <a href="/A230505/b230505.txt">Rows n = 1..78, flattened</a> (Rows 1..42 from Christopher Hunt Gribble)

%H Christopher Hunt Gribble, <a href="/A230505/a230505_1.cpp.txt">C++ program</a>

%F Sum_{s=1..k} T(n,k,s) = A225622(n,k).

%F Sum_{s=1..k} T(n,k,s)*s^2 = n*k*A224697(n,k).

%e T(5,4,2) = 13 because there are 13 2 X 2 squares in the 9 partitions of a 5 X 4 rectangle into integer-sided squares. The partitions are:

%e . Square side

%e . 1 2 3 4

%e 1 20 0 0 0

%e 2 16 1 0 0

%e 3 12 2 0 0

%e 4 8 3 0 0

%e 5 4 4 0 0

%e 6 11 0 1 0

%e 7 7 1 1 0

%e 8 3 2 1 0

%e 9 4 0 0 1

%e Total 85 13 3 1

%e The irregular triangle begins:

%e n,k Square Side (s)

%e . 1 2 3 4 5 6 7 ...

%e 1,1 1

%e 2,1 2

%e 2,2 4 1

%e 3,1 3

%e 3,2 8 1

%e 3,3 14 1 1

%e 4,1 4

%e 4,2 12 3

%e 4,3 27 3 1

%e 4,4 47 10 1 1

%e 5,1 5

%e 5,2 18 3

%e 5,3 41 4 2

%e 5,4 85 13 3 1

%e 5,5 134 16 4 1 1

%e 6,1 6

%e 6,2 24 6

%e 6,3 62 7 4

%e 6,4 135 27 5 3

%e 6,5 250 40 13 3 1

%e 6,6 415 82 24 6 1 1

%e 7,1 7

%e 7,2 32 6

%e 7,3 87 9 5

%e 7,4 204 34 8 4

%e 7,5 381 53 18 5 3

%e 7,6 717 127 45 13 4 1

%e 7,7 1102 165 60 16 6 1 1

%p b:= proc(n, l) option remember; local i, k, s, t;

%p if max(l[])>n then {} elif n=0 or l=[] then {0}

%p elif min(l[])>0 then t:=min(l[]); b(n-t, map(h->h-t, l))

%p else for k do if l[k]=0 then break fi od; s:={};

%p for i from k to nops(l) while l[i]=0 do s:=s union

%p map(v->v+x^(1+i-k), b(n, [l[j]$j=1..k-1,

%p 1+i-k$j=k..i, l[j]$j=i+1..nops(l)]))

%p od; s

%p fi

%p end:

%p T:= (n, k)->(p->seq(coeff(p, x, v), v=1..k))(add(h, h=b(n, [0$k]))):

%p seq(seq(T(n, k), k=1..n), n=1..9); # _Alois P. Heinz_, Oct 24 2013

%t b[n_, l_List] := b[n, l] = Module[{i, k, s, t}, Which[Max[l] > n, {}, n == 0 || l == {}, {0}, Min[l] > 0, t = Min[l]; b[n - t, l - t], True, For[k = 1, k <= Length[l], k++, If[l[[k]] == 0, Break[]]]; s = {}; For[i = k, i <= Length[l] && l[[i]] == 0, i++, s = s ~Union~ Map[# + x^(1 + i - k)&, b[n, Join[l[[1 ;; k - 1]], Array[1 + i - k&, i - k + 1], l[[i + 1 ;; Length[l]]]]]]]; s]]; T[n_, k_] := Function[p, Table[Coefficient[p, x, v], {v, 1, k}]][b[n, Array[0&, k]] // Total]; Table[Table[T[n, k], {k, 1, n}], {n, 1, 9}] // Flatten (* _Jean-François Alcover_, Jan 24 2016, after _Alois P. Heinz_ *)

%Y Cf. A034295, A224697, A225622.

%K nonn,tabf

%O 1,2

%A _Christopher Hunt Gribble_, Oct 22 2013