OFFSET
0,3
COMMENTS
A pyramid polycube is obtained by gluing together horizontal plateaux (parallelepipeds of height 1) in such a way that (0,0,0) belongs to the first plateau and each cell with coordinate (0,b,c) belonging to the first plateau is such that b , c >= 0. If the cell with coordinates (a,b,c) belongs to the (a+1)-st plateau (a>0), then the cell with coordinates (a-1, b, c) belongs to the a-th plateau.
An espalier polycube is a special pyramid such that each plateau contains the cell with coordinate (a,0,0).
FORMULA
The number n_{i,j,h,v} of espaliers of volume v, height h and such that the highest plateau has volume i * j is given by the recurrence:
n_{i,j,h,v} = \sum_{0 <= a <= (i*j*h-v)/((h-1)j)} \sum_{0 <= b <=
(j(h(i+a)-a)-v)/((i+a)(k-1))} n_{i+a,j+a,h-1,v-ij}
The number of espaliers of volume v and height h is given by
n_{h,v}=\sum_{i*j<=v}n_{i,j,h,v}
MAPLE
calcRecEsp:=proc(i, j, k, l) option remember; ## Compute the number
n_{i, j, k, l}
if (l<0) then 0
elif (i*j*k>l) then 0
elif k=1 then
if (i*j=l) then
1
else 0;
fi;
else
s:=0; a:=0; b:=0;
while ((i+a)*j*(k-1)<=l-i*j) do
b:=0;
while ((i+a)*(j+b)*(k-1)<=l-i*j) do
s:=s+calcRecEsp(i+a, j+b, k-1, l-i*j);
b:=b+1;
od;
a:=a+1;
od;
s;
fi;
end;
compteEsp:=proc(l) ### compute \sum_{v}n_{h, v}t^v
s:=0;
for k to l do
i:=1:
while (i*k<=l) do
j:=1;
while (i*k*j<=l) do
s:=s+t^k*calcRecEsp(i, j, k, l);
j:=j+1;
od:
i:=i+1;
od;
od;
s;
end;
[1, seq(op(convert(compteEsp(ii), list)), ii=2..200)];
CROSSREFS
KEYWORD
nonn,tabl
AUTHOR
Matthieu Deneufchâtel, Oct 09 2013
STATUS
approved