贈券收集問題

来自testwiki
95.70.185.12留言2022年4月29日 (五) 13:39的版本 外部連結
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

Template:NoteTA 贈券收集問題(Coupon collector's problem) 是機率論中的著名題目,其目的在解答以下問題:

假設有n贈券,每種贈券獲取機率相同,而且贈券亦無限供應。若取贈券t張,能集齊n種贈券的機率多少?

計算得出,平均需要Θ(nln(n))次才能集齊n種贈券——这就是赠券收集问题的时间复杂度。例如n = 50時大約要取 50ln(50)+50γ+1/2195.6011+28.8608+0.5224.9619次才能集齊50種贈券。

問題內容

贈券收集問題的特徵是開始收集時,可以在短時間內收集多種不同的贈券,但最後數種則要花很長時間才能集齊。例如有50種贈券,在集齊49種以後要約多50次收集才能找到最後一張,所以贈券收集問題的答案t的期望值要比50要大得多。

解答

計算期望值

假設T是收集所有n種贈券的次数,ti是在收集了第i-1種贈券以後,到收集到第i種贈券所花的次数,那麼Tti都是隨機變量。在收集到i-1種贈券後能再找到「新」一種贈券的概率是pi=ni+1n,所以ti是一種幾何分佈,並有期望值1pi。根據期望值的線性性質,

E(T)=E(t1)+E(t2)++E(tn)=1p1+1p2++1pn=nn+nn1++n1=n(11+12++1n)=nHn.

其中Hn調和數,根據其近似值,可化約為:

E(T)=nHn=nlnn+γn+12+o(1),  as n,

其中γ0.5772156649歐拉-馬歇羅尼常數.

那麼,可用馬爾可夫不等式求取機率的上限:

P(TcnHn)1c.

變異數

基於ti相互獨立的特性,則有:

Var(T)=Var(t1)+Var(t2)++Var(tn)=1p1p12+1p2p22++1pnpn2n2n2+n2(n1)2++n212n2(112+122+)=π26n22n2,

最末一行的等式來自黎曼ζ函數巴塞爾問題。此式繼而可用切比雪夫不等式求取機率上限:

P(|TnHn|cn)2c2.

尾部估算

我們亦可用以下方法求另一個的上限:假設Zir表示在首r次收集中未有見到第i種贈券,則

P[Zir]=(11n)rer/n

所以,若r=βnlogn,則有P[Zir]e(βnlogn)/n=nβ.

P[T>βnlogn]P[iZiβnlogn]nP[Z1]nβ+1

用生成函數的解法

另一種解決贈券收集問題的方法是用生成函數

觀察得出,贈券收集的過程必然如下:

  • 收集第一張贈券,其出現的機率是n/n=1
  • 收集了若干張第一種贈券
  • 收集到一張第二種贈券,其出現的機率是(n1)/n
  • 收集了若干張第一種或第二種贈券
  • 收集到一張第三種贈券,其出現的機率是(n2)/n
  • 收集了若干張第一種、第二種或第三種贈券
  • 收集到一張第四種贈券,其出現的機率是(n3)/n
  • 收集到一張最後一種贈券,其出現的機率是1/n

若某一刻已若干種贈券,再收集到一張已重覆的贈券的機率是p,那麼,再收集到m張已重覆的贈券的機率就是pm。則就此部分而言,有關m概率母函数(PGF)是

G(z)=m=0pmzm=1+pz+p2z2+p3z3+=11pz

若將上述收集過程分割為多個階段,則整個收集過程所花的時間的概率母函数為各部分的乘積,亦即

G(z)=nnz111nzn1nz112nzn2nz113nzn3nz11n1nzn(n1)nz.

那麼,根據機率生成函數的特性,總收集次數T期望值

E(T)=ddzG(z)|z=1

而某一T的機率則是

Pr(T=k)=1k!dkG(z)dzk|z=0

計算E(T)可先化簡G(z)

G(z)=znn1nzn2n2zn3n3zn(n1)n(n1)z

因為

ddznknkz=k(nk)(nkz)2

所以

ddzG(z)=G(z)(nz+1nz+2n2z+3n3z+n1n(n1)z)

故此可得出

E(T)=ddzG(z)|z=1=G(1)(n+1n1+2n2+3n3+n1n(n1))=n+k=1n1knk

其中的連加部分可化簡:

k=1n1knk=k=1n1(knknnk)+nHn1=nHn1(n1)

所以得出: E(T)=n+nHn1(n1)=nHn1+1=nHn

用機率生成函數可同時求取變異量。變異量可寫作

Var(T)=E(T(T1))+E(T)E(T)2

其中

E(T(T1))=d2dz2G(z)|z=1=[G(z)(nz+1nz+2n2z+3n3z+n1n(n1)z)2+G(z)(nz2+12(nz)2+22(n2z)2+32(n3z)2+(n1)2(n(n1)z)2)]|z=1=n2Hn2n+k=1n1k2(nk)2=n2Hn2n+k=1n1(nk)2k2=n2Hn2n+n2Hn1(2)2nHn1+(n1).

故得出:

Var(T)=n2Hn21+n2Hn1(2)2nHn1+nHn1+1n2Hn2=n2Hn1(2)nHn1<π26n2

參考文獻

  • Paul Erdős and Alfréd Rényi, On a classical problem of probability theory, Magyar Tud. Akad. Mat. Kutato Int. Kozl, 1961.
  • William Feller, An introduction to Probability Theory and its Applications, 1957.
  • Michael Mitzenmacher and Eli Upfal, Probability and Computing: Randomized Algorithms and Probabilistic Analysis, Cambridge University Press, 2005
  • Donald J. Newman and Lawrence Shepp, The Double Dixie Cup Problem, American Mathematical Monthly, Vol. 67, No. 1 (Jan., 1960), pp. 58–61.
  • Philippe Flajolet, Danièle Gardy, Loÿs Thimonier Birthday paradox, coupon collectors, caching algorithms and self-organizing search. Template:Wayback, Discrete Applied Mathematics, Vol. 39, (1992), pp. 207–229

外部連結