Czy istnieje wzór na ogólną formę problemu z kolektorem kuponów?


10

Natknąłem się na problem kolektorów kuponów i próbowałem wypracować formułę na uogólnienie.

Jeśli istnieje różnych obiektów i chcesz zebrać co najmniej kopii każdego z nich (gdzie m \ le N ), jakie jest oczekiwanie na liczbę losowych obiektów? Normalny problem z kolektorem kuponów ma m = N i k = 1 .NkmmNm=Nk=1

W kolekcji znajduje się 12 różnych figurek LEGO. Chcę zebrać 3 kopie każdej z 10 (dowolnych 10) figurek. Mogę je kupić losowo pojedynczo. Ile powinienem kupić, zanim będę miał 3 kopie każdego z 10 z nich?


3
Nie przypominam sobie, że widziałem formułę tego szczególnego uogólnienia, ale w przypadku takiego jednorazowego konkretnego pytania, zwykle używam symulacji.
Glen_b

Odpowiedzi:


5

Nie jest to łatwe do obliczenia, ale można to zrobić, pod warunkiem że (m+kk) nie jest zbyt duży. (Liczba ta uwzględnia możliwe stany, które należy śledzić podczas zbierania kuponów).

Zacznijmy od symulacji, aby uzyskać odpowiedź na pytanie. Tutaj zebrałem figurki LEGO milion razy. Czarna linia na tym wykresie śledzi częstotliwości liczby zakupów potrzebnych do zebrania co najmniej trzech z dziesięciu różnych liczb.

Postać

Szare pasmo jest przybliżonym dwustronnym 95% przedziałem ufności dla każdej liczby. Pod tym wszystkim znajduje się czerwona krzywa: to jest prawdziwa wartość.

Aby uzyskać prawdziwe wartości, weź pod uwagę stan rzeczy podczas zbierania liczb, których jest możliwych typów i chcesz zebrać co najmniej z różnych typów. Jedyne informacje, które musisz śledzić, to ile liczb nie widziałeś, ile widziałeś tylko raz, ile widziałeś dwa razy i ile widziałeś trzy lub więcej razy. Możemy to wygodnie przedstawić jako gdzie to powiązane liczby, indeksy od do . Ogólnie używalibyśmy monomialów formyk = 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=3)m=10x0ja0x1ja1x2)ja2)x3)ja3)jajotk=0k=tjot=0kxjotjajot .

Po zebraniu nowego obiektu losowego będzie to jeden z niewidocznych obiektów z prawdopodobieństwem , jeden z obiektów widzianych tylko raz z prawdopodobieństwem i tak dalej. Wynik można wyrazić jako liniową kombinację monomialów,i 0 / n i 1 / nja0ja0/nja1/n

x0ja0x1ja1x2)ja2)x3)ja3)1n(ja0x0ja0-1x1ja1+1x2)ja2)x3)ja3)++ja3)x0ja0x1ja1x2)ja2)-1x3)ja3)).

Jest to wynik zastosowania liniowego operatora różnicowego do monomialu. Oczywiście powtarzane aplikacje do stanu początkowego dadzą wielomian , mający co najwyżej , gdzie współczynnik to szansa na bycie w stanie wskazanym przez jego wykładniki. Mamy tylko trzeba skupić się na warunkach w z : suma ich współczynników będzie szansa po zakończeniu zbierania kuponów. Całe obliczenie wymaga zatem do(x1rex0+x2)rex1+x3)rex2)+x3)rex3))/nx012=x0np(n+kk)jot=0kxjotjajotpja3)t(m+1)(n+kk) łatwe obliczenia na każdym etapie, powtarzane tyle razy, ile jest to konieczne, aby mieć pewność, że kolekcja się powiedzie.

Wyrażenie tego procesu w ten sposób umożliwia wykorzystanie wydajności systemów algebry komputerowej. Oto, na przykład, ogólne rozwiązanie Mathematica do obliczania szans aż do losowań. To pomija pewne możliwości, ale ich całkowite szanse są mniejsze niż , co daje nam prawie pełny obraz rozkładu.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];

Wynik, którego obliczenie zajmuje około dwóch sekund (szybciej niż symulacja!), To tablica prawdopodobieństw zindeksowana liczbą losowań. Oto wykres różnic, które są prawdopodobieństwem zakończenia zakupów w zależności od liczby:

Rysunek 2

Są to dokładnie liczby użyte do narysowania czerwonej krzywej tła na pierwszym rysunku. (Test chi-kwadrat wskazuje, że symulacja nie różni się znacząco od tego obliczenia.)

Oszacowaną liczbę losowań możemy oszacować, sumując ; wynik powinien być dobry do 14-15 miejsc po przecinku. Otrzymuję (co jest poprawne w każdej cyfrze, co wynika z dłuższych obliczeń).1-q50.7619549386733

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.