Существует ли формула для общей формы задачи по сбору купонов?


10

Я наткнулся на проблему сборщиков купонов и пытался выработать формулу для обобщения.

Если существует различных объектов, и вы хотите собрать как минимум копий каждого из их (где ), каково ожидание того, сколько случайных объектов вы должны купить? В нормальной задаче по сбору купонов и .k m m N m = N k = 1NkmmNm=Nk=1

В коллекции 12 разных фигур LEGO. Я хочу собрать 3 копии каждой из 10 (любых 10) фигур. Я могу купить их случайно по одному. Сколько я должен ожидать купить, прежде чем у меня есть 3 копии каждого из 10 из них?


3
Я не помню, чтобы видел формулу для этого конкретного обобщения, но для одноразового вопроса, подобного этому, я бы склонялся к моделированию.
Glen_b

Ответы:


5

Это не легко вычислить, но это можно сделать, если (m+kk) не слишком велик. (Это число учитывает возможные состояния, которые необходимо отслеживать при сборе купонов.)

Давайте начнем с симуляции, чтобы получить некоторый смысл ответа. Здесь я собрал цифры LEGO миллион раз. Черная линия на этом графике отслеживает частоты количества покупок, необходимых для сбора не менее трех из десяти различных цифр.

фигура

Серая полоса - это приблизительный двусторонний 95% доверительный интервал для каждого счета. Под всем этим находится красная кривая: это истинное значение.

Чтобы получить истинные значения, учитывайте положение дел во время сбора цифр, из которых существует возможных типов, и вы хотите собрать как минимум из различных типов. Единственная информация, которую вам нужно отслеживать, это то, сколько фигур вы не видели, сколько вы видели всего один раз, сколько вы видели дважды и сколько вы видели три или более раз. Мы можем удобно представить это как моном где - это связанные числа, индексы от до . В общем, мы будем использовать мономы видаk = 3 m = 10 x i 0 0 x i 1 1 x i 2 2 x i 3 3 i j k = 0 k = t k j = 0 x i j jn=12k=3m=10x0i0x1i1x2i2x3i3ijk=0k=tj=0kxjij .

После сбора нового случайного объекта это будет один из невидимых объектов с вероятностью , один из объектов, видимых только один раз с вероятностью , и так далее. Результат может быть выражен в виде линейной комбинации мономов,i0i0/ni1/n

x0i0x1i1x2i2x3i31n(i0x0i01x1i1+1x2i2x3i3++i3x0i0x1i1x2i21x3i3).

Это результат применения линейного дифференциального оператора к моному. Очевидно, что повторные обращения к начальному состоянию дадут многочлен , имеющий не более членов, где коэффициент - это шанс быть в состоянии, указанном его показателями. Нам просто нужно сосредоточиться на терминах в с : сумма их коэффициентов будет шансом завершить сбор купона. Таким образом, весь расчет требует до(Икс1DИкс0+Икс2DИкс1+Икс3DИкс2+Икс3DИкс3)/NИкс012знак равноИкс0Nп(N+КК)ΠJзнак равно0КИксJяJпя3T(м+1)(N+КК) простые вычисления на каждом этапе, повторяемые столько раз, сколько необходимо, чтобы быть почти уверенными в успешности сбора.

Такое выражение процесса позволяет использовать эффективность систем компьютерной алгебры. Вот, например, общее решение Mathematica для вычисления шансов до розыгрышей. Это исключает некоторые возможности, но их общие шансы меньше , что дает нам почти полную картину распределения.6NКзнак равно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];

Результат, который занимает около двух секунд для вычисления (быстрее, чем симуляция!), Представляет собой массив вероятностей, проиндексированных по количеству ничьих. Вот график его различий, которые представляют собой вероятности завершения ваших покупок в зависимости от количества:

фигура 2

Именно эти цифры используются для рисования красной фоновой кривой на первом рисунке. (Тест хи-квадрат показывает, что симуляция существенно не отличается от этого вычисления.)

Мы можем оценить ожидаемое количество тиражей суммированием ; результат должен быть хорошим до 14-15 знаков после запятой. Я (что верно для каждой цифры, что определяется более длинными вычислениями).1-Q+50,7619549386733

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.