Kupon toplayıcı sorununun genel bir formunun bir formülü var mı?


10

Kupon koleksiyoncuları sorununa rastladım ve genelleme için bir formül geliştirmeye çalışıyordum.

Varsa farklı nesneler ve en azından toplamak istediğiniz herhangi her birinin kopya bunlardan (burada ), satın almalısınız kaç rastgele nesneleri beklentisi nedir ?. Normal kupon toplayıcı problemi ve .NkmmNm=Nk=1

Bir koleksiyonda 12 farklı LEGO figürü vardır. 10 (herhangi bir 10) figürün her birinin 3 kopyasını toplamak istiyorum. Onları teker teker rastgele alabilirim. Her birinin 3 kopyasından önce kaç tane satın almayı beklemeliyim?


3
Bu genelleme için bir formül gördüğümü hatırlamıyorum, ancak böyle bir kereye mahsus belirli bir soru için simülasyon kullanma eğilimindeydim.
Glen_b

Yanıtlar:


5

Bu hesaplamak kolay değildir, ancak (m+kk) çok büyük olmadığı sürece yapılabilir . (Bu sayı, kuponları toplarken izlemeniz gereken olası durumları sayar.)

Cevabı anlamak için bir simülasyonla başlayalım . Burada bir milyon kez LEGO figürleri topladım. Bu grafikteki siyah çizgi, on farklı rakamdan en az üçünü toplamak için gereken satın alma sayılarının sıklığını izler.

şekil

Gri bant, her sayım için yaklaşık iki taraflı% 95 güven aralığıdır. Altında her şey kırmızı bir eğridir: bu gerçek değerdir.

Gerçek değerleri elde etmek için, orada olduğumuz rakamlar, toplama sırasında işlerin durumunu dikkate olası türleri ve en azından toplamak isteyen arasında farklı türde. İzlemeniz gereken tek bilgi kaç tane figür görmediğinizi, kaç tanesini bir kez gördünüz, kaç tanesini iki kez gördünüz ve kaç tanesini üç veya daha fazla gördüğünüzdür . Bunu uygun bir şekilde bir olarak ; burada , ilişkili sayılardır, ile arasındaki dizinler . Genel olarak, formun monomiallerini kullanırdıkn=12k=3m=10x0i0x1i1x2i2x3i3ijk=0k=tj=0kxjij .

Yeni bir rastgele nesne sonra, olasılığı olan görünmeyen nesnelerden biri, olasılığı ile sadece bir kez görülen nesnelerden biri olacak vb. Sonuç, monomiyallerin doğrusal bir kombinasyonu olarak ifade edilebilir,i0i0/ni1/n

x0i0x1i1x2i2x3i31n(i0x0i01x1i1+1x2i2x3i3++i3x0i0x1i1x2i21x3i3).

Bu, lineer diferansiyel operatörünün . Açıkça görülüyor ki, başlangıç ​​durumuna tekrarlanan uygulamalar en çok sahip bir polinom verecektir , burada katsayısı , üsleri tarafından belirtilen durumda olma . ile cinsinden terimlere odaklanmamız gerekir : katsayılarının toplamı kupon toplamayı şansı olacaktır. Tüm hesaplama bu nedenle(x1Dx0+x2Dx1+x3Dx2+x3Dx3)/nx012=x0np(n+kk)j=0kxjijpi3t(m+1)(n+kk) Her adımda kolay hesaplamalar, toplama ile başarılı olmanın neredeyse kesin olması için gerektiği kadar tekrarlanır.

Süreci bu şekilde ifade etmek, bilgisayar cebir sistemlerinin verimliliğini kullanmayı mümkün kılar. Burada, örneğin, kadar olan şansı hesaplamak için genel bir Mathematica çözümüdür . Bu, bazı olasılıkları atlar, ancak toplam şansları den azdır ve bize dağıtımın neredeyse tam bir resmini verir.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];

Hesaplamak için yaklaşık iki saniye süren sonuç (simülasyondan daha hızlı!) Çekiliş sayısı ile endekslenmiş bir olasılık dizisidir. Aşağıda, satın alma işlemlerinizi sayımın bir işlevi olarak sonlandırma olasılıkları olan farklılıklarının bir grafiği verilmiştir:

şekil 2

Bunlar, ilk şekilde kırmızı arka plan eğrisini çizmek için kullanılan sayılardır. (Ki kare testi, simülasyonun bu hesaplamadan önemli ölçüde farklı olmadığını gösterir.)

Beklenen çekiliş sayısını toplayarak tahmin edebiliriz ; sonuç 14-15 ondalık basamağa kadar iyi olmalıdır. (daha uzun bir hesaplama ile belirlendiği gibi her basamakta doğrudur) elde .1q50.7619549386733

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.