Aleatorio/ensayos simulaciones de Monte Carlo son notoriamente lentos a converger, con un error esperado inversamente proporcional a la raíz cuadrada del número de ensayos.
En este caso no es difícil (dado un lenguaje de programación que proporciona grandes enteros) para hacer un recuento exacto de los casos. Efectivamente los resultados son particiones de 15 bolas en un cierto número de cajas (tenemos treinta cajas para trabajar, así que al menos la mitad estará vacía).
Escribí un Prólogo de programa para hacer esto (Amsi! Prólogo ha enteros de precisión arbitraria incorporado), y obtuvo los siguientes resultados:
$$ Pr(\text{10 o menos cajas ocupado}) = \frac{59486359170743424000}{30^{14}} \aprox
0.124371 $$
$$ Pr(\text{2 cajas tienen 6 o más bolas}) = \frac{30415369655816064000}{30^{14}} \aprox
0.063591 $$
The reason I'm dividing by $30^{14}$ in these probabilities is because I normalized the counting to begin with one case where a ball is in one box. If we counted that as thirty cases, we'd need to divide by $30^{15}$. So this keeps the totals slightly smaller. Each ball we add increases the total number of cases by a factor of $30$.
I wrote a recursive rule to build cases for $n+1$ balls from cases for $n$ balls. The first few cases have the following counts:
/* case(Balls,Partition,LengthOfPartition,Count) */
case(1,[1],1,1). /* Count is nominally 1 to begin */
case(2,[2],1,1).
case(2,[1,1],2,29).
case(3,[3],1,1).
case(3,[1,2],2,87).
case(3,[1,1,1],3,812). /* check: for Sum = 3, sum of Count is 900 */
The number of cases generated is modest enough for a desktop, daunting to manage by hand. For $n=15$ there are $176$ particiones. También simplifica el código de Prólogo para mantener las particiones como las listas en orden ascendente.