El número de maneras de poner $n$ sin etiquetar bolas en $k$ distintos contenedores es $$\binom{n+k-1}{k-1} .$$ Lo que tiene sentido para mí, pero lo que no puedo entender es cómo modificar esta fórmula si cada cubo tiene un máximo de $m$ bolas.
EDIT: Lo he probado:
Llegué a la generación de la función $$(1-x^{m+1})^k(1-x)^{-k}$$ lo que termina dando me $$\sum_{r(m+1)+r_2=n} \binom{k}{r}(-1)^{r_2}\binom{k+r_2-1}{r_2}$$
Pero cuando la programación de este:
def distribute_max(total,buckets,mmax):
ret = 0
for r in xrange(total//(mmax+1)+1):
r_2 = total - r*(mmax+1)
ret += choose(buckets,r) * (-1)**r_2 * choose(buckets + r_2 - 1,r_2)
return ret
Me estoy poniendo de muy mal las respuestas. No estoy seguro de que paso la puse.