Aquí es una forma cerrada, se necesitan métodos más sofisticados para la
asymptotics.
Siguiendo la notación introducida en este MSE
enlace suponemos
que la muerte ha $m$ caras y se enrolla $n$ veces. Lanzar el dado
con la mayoría de ocurrido el valor que se $q$ e instancias de este tamaño
marcado de los rendimientos de las especies
$$\mathfrak{S}_{=m}
(\mathfrak{P}_{y=0}(\mathcal{Z})
+ \mathfrak{P}_{=1}(\mathcal{Z})
+ \cdots
+ \mathcal{V}\mathfrak{P}_{=q}(\mathcal{Z})).$$
Esto ha generando función
$$G(z,v) =
\left(\sum_{i=0}^{p-1} \frac{z^r}{r!} + v\frac{z^p}{q!}\right)^m.$$
Restando los valores donde los conjuntos de tamaño $q$ no se producen obtenemos
la generación de la función
$$H_{p}(z) =
\left(\sum_{i=0}^{q} \frac{z^r}{r!}\right)^m
- \left(\sum_{i=0}^{p-1} \frac{z^r}{r!}\right)^m.$$
Esto también se sigue más o menos por la inspección.
Se obtiene por la cantidad deseada de la forma cerrada
$$\bbox[5px,border:2px solid #00A000]{
\frac{n!}{m^n}
[z^n] \sum_{q=1}^n q H_q(z).}$$
La introducción de
$$L_{p}(z) =
\left(\sum_{i=0}^{q} \frac{z^r}{r!}\right)^m$$
por lo tanto, tienen
$$\frac{n!}{m^n} [z^n] \sum_{q=1}^n q (L_{q}(z) - L_{q-1}(z)).$$
Este es
$$\frac{n!}{m^n} [z^n]
\left(n L_n(z) - \sum_{q=0}^{n-1} L_q(z)\right).$$
También tenemos para
$$[z^n] L_q(z) =
\sum_{k=0}^{\min(p, n)} \frac{1}{k!} [z^{n-k}]
\left(\sum_{i=0}^{q} \frac{z^r}{r!}\right)^{m-1}$$
Además obtenemos para $m=1$
$$[z^n] L_q(z) =
[[n \le p]] \times \frac{1}{n!}.$$
Con estos se puede implementar una recursividad, que de hecho en que se está codificada
resultó inferior a la de Maple rápida multiplicación de polinomio rutinas. Es
se incluye aquí porque memoizes coeficientes de $L_q(z)$, lo que
proporcionar una dramática la velocidad de las parcelas en el costo de la asignación de
más de memoria.
Todo esto da como resultado el siguiente gráfico donde hemos reducido la trama
por un factor de $n/m.$ Esto es para una de las seis caras de morir:
3+ H
+
| H
+ H
|
+ H
+ HH
| HH
2+ HH
| HHH
+ HHHH
+ HHHHHHH
| HHHHHHHHHHH
+ HHHHHHHHHHHHHHHHHHHHHHHHH
| HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
-+--+---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--
0 20 40 60 80 100 120
Y aquí está la parcela por un período de doce caras de morir. (Considero que vale la pena
la observación de que tenemos el exacto valor de la expectativa en el
caso de $120$ rollos de este morir, un número de casos que ha $130$ dígitos,
similar a lo que apareció en el compañero del post.)
8+
|
+
+
|
+
+ H
|
6+
|
+
+
| H
+
+ H
|
4+ HH
+ H
| H
+ HH
+ HH
| HHHH
+ HHHHHH
2+ HHHHHHHHHHH
| HHHHHHHHHHHHHHHHHHHHHHHHH
+ HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
-+--+---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--
0 20 40 60 80 100 120
Este fue el Arce de código.
con(parcelas);
con(planta);
ENUM :=
proc(n, m)
opción de recordar;
local rollos, res, ind, cuenta, por lo menos, la mayoría de los;
res := 0;
para la ind de la m^n 2*m^n-1 hacer
rollos := convert(ind, base, m);
cuenta := map(mel->op(2, mel),
convertir(rollos[1..n], `conjunto múltiple`));
res := res + max(cuenta);
od;
res/m^n;
end;
L := (m, rmáx) -> add(z^r/r!, r=0..rmax)^m;
X :=
proc(n, m)
opción de recordar;
local H;
H := q -> expand(L(m,p)-L(m,q-1));
n!/m^n*
coef(añadir(q*H(q), q=1..n), z, n);
end;
LCF :=
proc(n,m,p)
opción de recordar;
si n < 0 then return 0 fi;
si m = 1 entonces
si n <= q entonces devolver 1/n! fi;
return 0;
fi;
agregar(1/k!*LCF(n-k,m-1,p),k=0..min(p,n));
end;
LVERIF :=
(m, q) -> add(LCF(n, m, p)*z^n, n=0..p*m);
XX :=
proc(n, m)
opción de recordar;
local res;
res :=
n*LCF(n,m,n) - agregar(LCF(n,m,p), q=0..n-1);
res*n!/m^n;
end;
DICEPLOT :=
proc(nmx), m)
local pt;
pts := [seq([n, XX(n,m)/(n/m)], n=1..nmx)];
pointplot(pts);
end;