How to solve this summation ?
∑0≤x1≤x2...≤xn≤n(k+x1−1x1)(k+x2−1x2)...(k+xn−1xn)
where k , n are known.
Due to hockey-stick identity ,
n∑i=0(i+k−1i)=(n+kk)
Answer
Suppose we seek to evaluate
∑0≤x1≤x2⋯≤xn≤n(k+x1−1x1)(k+x2−1x2)⋯(k+xn−1xn).
Using the Polya Enumeration Theorem and the cycle index of the
symmetric group this becomes
Z(Sn)(Q0+Q1+Q2+⋯+Qn)
evaluated at
Qm=(k−1+mm).
Now the OGF of the cycle index Z(Sn) of the symmetric group is
G(z)=exp(a1z1+a2z22+a3z33+⋯).
The substituted generating function becomes
H(z)=exp(∑p≥1zppn∑m=0(k−1+mm)p)=exp(n∑m=0∑p≥1zpp(k−1+mm)p)=exp(n∑m=0log11−(k−1+mm)z)=n∏m=011−(k−1+mm)z.
Some thought shows that this could have been obtained by inspection.
We use partial fractions by residues on this function which we
re-write as follows:
(−1)n+1n∏m=0(k−1+mm)−1n∏m=01z−1/(k−1+mm).
Switching to residues we obtain
(−1)n+1n∏m=0(k−1+mm)−1n∑m=01z−1/(k−1+mm)×n∏p=0,p≠m11/(k−1+mm)−1/(k−1+pp).
Preparing to extract coefficients we get
(−1)nn∏m=0(k−1+mm)−1n∑m=0(k−1+mm)1−z(k−1+mm)×n∏p=0,p≠m11/(k−1+mm)−1/(k−1+pp).
Doing the coefficient extraction we obtain
(−1)nn∏m=0(k−1+mm)−1n∑m=0(k−1+mm)n+1×n∏p=0,p≠m11/(k−1+mm)−1/(k−1+pp)=(−1)nn∏m=0(k−1+mm)−1n∑m=0(k−1+mm)2n+1×n∏p=0,p≠m11−(k−1+mm)/(k−1+pp)=(−1)nn∑m=0(k−1+mm)2nn∏p=0,p≠m1(k−1+pp)−(k−1+mm).
The complexity here is good since the formula has a quadratic number
of terms in n. The number of partitions that a total enumeration
would have to consider is given by
Z(Sn)(Q0+Q1+Q2+⋯+Qn)
evaluated at Q0=Q1=Q2=⋯=Qn=1 which gives the
substituted generating function
A(z)=exp((n+1)log11−z)=1(1−z)n+1.
This yields for the total number of partitions
(n+nn)=(2nn)
which by Stirling has asymptotic
(consult OEIS A00984)
4n√πnandn2∈o(4n√πn).
For example when n=24 and k=5 we would have to consider
(4824)=32.247.603.683.100 partitions but the formula
readily yields
42428385183941043810926169770907743004588251484466532768406217230660254960158131603789563454425647212676100.
Additional exploration of these formulae may be undertaken using the
following Maple code which contrasts total enumeration and the closed
formula.
A :=
proc(n, k)
option remember;
local iter;
iter :=
proc(l)
if nops(l) = 0 then
add(iter([q]), q=0..n)
elif nops(l) < n then
add(iter([op(l), q]), q=op(-1, l)..n)
else
mul(binomial(k-1+l[q], l[q]), q=1..n);
fi;
end;
iter([]);
end;
EX :=
proc(n, k)
option remember;
(-1)^n*add(binomial(k-1+m,m)^(2*n)*
mul(1/(binomial(k-1+p,p)-binomial(k-1+m,m)), p=0..m-1)*
mul(1/(binomial(k-1+p,p)-binomial(k-1+m,m)), p=m+1..n),
m=0..n);
end;
No comments:
Post a Comment