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.
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=10xi00xi11xi22xi33ijk=0k=t∏kj=0xijj .
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
xi00xi11xi22xi33→1n(i0xi0−10xi1+11xi22xi33+⋯+i3xi00xi11xi2−12xi33).
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)/nx120=xn0p(n+kk)∏kj=0xijjpi3≥t(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=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];
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:
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 .1−q50.7619549386733