クーポンコレクターの問題の一般的な形式の公式はありますか?


10

私はクーポンコレクターの問題に遭遇し、一般化の公式を考え出そうとしていました。

ある場合は個別のオブジェクトは、あなたが少なくとも収集するk個の任意の各コピーメートルそれらの(M N)、あなたが買うべきか、多くのランダムなオブジェクトの期待は何ですか?。通常のクーポンコレクターの問題には、m = Nおよびk = 1があります。NkmmNm=Nk=1

コレクションには12種類のレゴフィギュアがあります。10体(各10体)それぞれ3枚ずつ集めたい。ランダムに1つずつ購入できます。それらのそれぞれの3つのコピーを入手する前に、いくつ購入する予定ですか?


3
その特定の一般化の式を見た覚えはありませんが、そのような1回限りの特定の質問では、シミュレーションを使用する傾向があります。
Glen_b-2015

回答:


5

これは簡単に計算できませんが、は大きすぎません。(この数は、クーポンの収集中に追跡する必要がある可能性のある状態をカウントします。)(m+kk)

答えを理解するためのシミュレーションから始めましょう。ここでは、100万回レゴのフィギュアを集めました。このプロットの黒い線は、10の異なる数字のうち少なくとも3つを収集するために必要な購入数の頻度を追跡します。

図

灰色の帯は、各カウントのおおよその両側95%信頼区間です。その下にはすべて赤い曲線があります。これが真の値です。

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];

計算に約2秒かかる(シミュレーションよりも速い!)結果は、描画回数によってインデックスが付けられた確率の配列です。これは、カウントの関数として購入を終了する確率であるその違いのプロットです。

図2

これらは正確に、最初の図で赤い背景曲線を描くために使用される数字です。(カイ2乗検定は、シミュレーションがこの計算と有意差がないことを示します。)

1q50.7619549386733

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.