Isso não é fácil de calcular, mas pode ser feito, desde que não é muito grande. (Esse número conta os possíveis estados que você precisa acompanhar ao coletar cupons.)( m+kk)
Vamos começar com uma simulação para entender melhor a resposta. Aqui, coletei figuras de LEGO um milhão de vezes. A linha preta neste gráfico rastreia as frequências do número de compras necessárias para coletar pelo menos três dos dez números diferentes.
A faixa cinza é um intervalo de confiança aproximado de 95% nos dois lados para cada contagem. Por baixo de tudo, há uma curva vermelha: esse é o verdadeiro valor.
n = 12k = 3m = 10xEu0 00 0xEu1 11 1xEu22xEu33Eujk = 0k = t∏kj = 0xEujj
Eu0 0Eu0 0/ nEu1 1/ n
xEu0 00 0xEu1 11 1xEu22xEu33→ 1n( i0 0xEu0 0- 10 0xEu1 1+ 11 1xEu22xEu33+ ⋯ + i3xEu0 00 0xEu1 11 1xEu2- 12xEu33) .
( x1 1Dx0 0+ x2Dx1 1+ x3Dx2+ x3Dx3) / nx120 0= xn0 0p( n+kk)∏kj=0xijjpi3≥t(m+1)(n+kk)
6nk=21610−17
n = 12;
threshold = 10;
k = 3;
(* Draw one object randomly from an urn with `n` of them *)
draw[p_] :=
Expand[Sum[Subscript[x, i] D[#, Subscript[x, i - 1]], {i, 1, k}] +
Subscript[x, k] D[#, Subscript[x, k]] & @ p];
(* Find the chance that we have collected at least `k` each of `threshold` objects *)
f[p_] := Sum[
Coefficient[p, Subscript[x, k]^t] /.
Table[Subscript[x, i] -> 1, {i, 0, k - 1}], {t, threshold, n}]
(* Compute the chances for a long series of draws *)
q = f /@ NestList[draw[#]/n &, Subscript[x, 0]^n, 6 n k];
O resultado, que leva cerca de dois segundos para calcular (mais rápido que a simulação!), É um conjunto de probabilidades indexadas pelo número de empates. Aqui está um gráfico de suas diferenças, que são as probabilidades de encerrar suas compras em função da contagem:
Esses são precisamente os números usados para desenhar a curva de fundo vermelha na primeira figura. (Um teste qui-quadrado indica que a simulação não é significativamente diferente deste cálculo.)
1−q50.7619549386733