Existe uma fórmula para uma forma geral do problema do coletor de cupons?


10

Eu me deparei com o problema dos coletores de cupons e estava tentando descobrir uma fórmula para uma generalização.

Se houver N objetos distintos e que pretende coletar pelo menos k cópias de cada de qualquer m deles (onde mN ), qual é a expectativa de quantos objetos aleatórios que você deve comprar ?. O problema normais colector cupão tem m=N e k=1 .

Existem 12 figuras LEGO diferentes em uma coleção. Quero coletar 3 cópias de cada uma das 10 (dez) figuras. Eu posso comprá-los aleatoriamente, um de cada vez. Quantos devo esperar comprar antes de ter 3 cópias de cada um deles?


3
Não me lembro de ter visto uma fórmula para essa generalização específica, mas para uma pergunta específica pontual como essa, eu tenderia a usar simulação.
Glen_b -Reinstala Monica

Respostas:


5

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.

Figura

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=10x0i0x1i1x2i2x3i3ijk=0k=tj=0kxjij

i0i0/ni1/n

x0i0x1i1x2i2x3i31n(i0x0i01x1i1+1x2i2x3i3++i3x0i0x1i1x2i21x3i3).

(x1Dx0+x2Dx1+x3Dx2+x3Dx3)/nx012=x0np(n+kk)j=0kxjijpi3t(m+1)(n+kk)

6nk=2161017

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:

Figura 2

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.)

1q50.7619549386733

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.