Обчислити це непросто, але це можна зробити за умови, що ( м+кк) не надто великий. (Це число враховує можливі стани, які потрібно відстежувати під час збору талонів.)
Почнемо з моделювання, щоб отримати певний сенс відповіді. Тут я зібрав цифри 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 = 10хi00хi11хi22хi33ijk = 0k=t∏kj=0xijj .
Після збору нового випадкового об'єкта, це буде один з невидимих об'єктів з імовірністю , один із об'єктів, що бачились один раз із ймовірністю тощо. Результат може бути виражений у вигляді лінійної комбінації одночленів,i0i0/ni1/n
xi00xi11xi22xi33→1n(i0xi0−10xi1+11xi22xi33+⋯+i3xi00xi11xi2−12xi33).
Це результат застосування лінійного диференціального оператора до одночлена. Очевидно, що повторні додатки до початкового стану дадуть поліном , маючи щонайбільше доданків, де коефіцієнт - це шанс опинитися в стані, вказаному його експонентами. Нам просто потрібно зосередитись на у з : сума їх коефіцієнтів буде шансом завершити збір купона. Тому весь розрахунок вимагає до(x1Dx0+x2Dx1+x3Dx2+x3Dx3)/nx120=xn0p ∏ k j = 0 x i j j(n+kk)∏kj=0xijjpi3≥t(m+1)(n+kk) прості обчислення на кожному кроці, повторювані стільки разів, скільки потрібно, щоб бути майже впевненими в успіху колекції.
Вираження цього способу дозволяє використовувати ефективність систем комп’ютерної алгебри. Наприклад, загальне рішення Mathematica для обчислення шансів до нічиїх. Це не дає певних можливостей, але їхні загальні шанси менше , що дає нам майже повну картину розподілу.10 - 176nk=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];
Результат, на який потрібно обчислити близько двох секунд (швидше, ніж моделювання!), - це масив ймовірностей, індексований кількістю малюнків. Ось графік його відмінностей, які є ймовірністю припинення ваших покупок як функції рахунку:
Це саме числа, які використовуються для малювання кривої червоного фону на першій фігурі. (Тест на квадратний чи вказує на те, що моделювання істотно не відрізняється від цього обчислення.)
Ми можемо оцінити очікувану кількість нічиїх підсумовуючи ; результат повинен бути хорошим до 14-15 знаків після коми. Я (що правильно в кожній цифрі, що визначається більш тривалим обчисленням).50,76195493867331−q50.7619549386733