算法导论 5.4 Exercises 答案

5.4-1

假设班上有其它 n 个人,其和我生日相同的人数是 X。由于某一个人和我生日的概率是 p=1365,因此 X 服从二项分布 b(k;n,p)=(nk)pk(1p)nk

如果是求出 n,使得 n 个人中和自己生日相同的概率超过 12,那么和自己都不同的概率少于 12,可以得到 b(0;n,1365)12

解方程得到 nlog364/3651/2252.651989

因此,加上自身,班上至少有 254 个人。

对于另一道题,如果班上至少两个人的生日为 7 月 4 日的概率大于等于 12,那么得到 1b(0;n,1365)b(1;n,1365)12

解方程得到 n612.257413

因此,班上至少有 613 人。

5.4-2

假设事件 Bk 如书上所定义的那样,表示 n 个人中,k 个人不同生日的概率,那么得出了不等式 Pr{Bk}ek(k1)/2n

解方程 ek(k1)/2n0.01,得到 k(1+1+(16ln10)n)/2。代入 n=365,得到 k59。即 这个班至少 59 人。

令随机变量 X 表示有多少对人的生日相同,示性随机变量 Xi,j 表示 i,j 这两个人的生日相同。可以知道,E[Xi,j]=1n。那么有

E[X]=E[i=1k1j=i+1kXi,j]=i=1n1j=i+1kE[Xi,j]=(k2)1n4.6877

5.4-3

将球视为同学,将箱子视为日期数,那么问题转化成生日悖论。根据抽屉原理,最多只需要投掷 b+1 次。

假设 X 是期望投掷次数,那么如果投掷 k 次时,前 k1 次必须投掷到不同的地方,并且第 k 次投掷到这 k1 个箱子之一,那么可以得到 Pr{X=k}=(bk1)bk1k1b=k1bk(bk1)

那么根据定义,可以计算 X 的期望 E[X]

E[X]=k=2b+1kPr{X=k}=k=2b+1k(k1)bk(bk1)=k=1bk(k+1)bk(bk)=(b+1)b2(3b+1)bb1(A)

其中,步骤 (A) 得出的式子是基于将二项式定理两边求导取得的。

5.4-4

两两独立即可。因为等式 5.7 的推导都基于条件 Pr{bi=rbj=r}=Pr{bi=r}Pr{bj=r} 进行,并没有考虑 3 或以上的人数的情况,因此不需要相互独立这个更强的条件。

5.4-5

令随机变量 X 表示有多少个三人组,使得他们的生日相同,示性随机变量 Xi,j,k 表示 i,j,k 这两个人的生日相同。可以知道,E[Xi,j,k]=1n2,其中 n=365 表示一年的天数。那么有

E[X]=E[i=1k2j=i+1k1r=j+1kXi,j,r]=i=1k2j=i+1k1r=j+1kE[Xi,j,r]=(k3)1n2=k(k1)(k2)6n2

E[X]>1 时,就有相当的概率使得三个人同一天生日。令 n=365,解方程 E[X]>1 得到 k94。当这个群体至少有 94 人时即可。

5.4-6

如果一个长度为 k 的字符串各个字符不相同,那么第一个字符可以拥有 n 种选择,第二个字符拥有 n1 个选择…… 最终,第 k 个字符有 nk+1 种选择。因此为了构成一个 k 阶排列的概率为

p=i=1kni+1n=n!nk(nk)!

将字符集合对应到生日天数,将字符串的每一个位置对应到每一个人,那么由此转化成了生日悖论的场景。这个问题和生日悖论相同。

5.4-7

令随机变量 Xi 表示 n 次投掷后,落入第 i 个球的数量。那么 Xi 服从二项分布 b(k;n,1n)=(nk)(1n)k(11n)nk

Y 表示空桶的个数的期望,令示性随机变量 Yi 表示 Xi=0。那么可以知道 E[Xi]=b(0;n,1n)=(11n)n

那么有 E[Y]=i=1nE[Yi]=(n1)nnn1

Z 表示只包含一个球的桶的个数的期望,令示性随机变量 Zi 表示 Xi=1。那么可以知道 E[Zi]=b(1;n,1n)=(11n)n1

那么有 E[Z]=i=1nE[Zi]=(n1)n1nn2

5.4-8

s=lgn2lglgn。假设事件 Ai,l 表示事件:从第 i 个位置起,接下来所有硬币都是头部朝上。那么 Pr{Ai,s}=22lglgnlgn=2lglg2nlgn=lg2nn。考虑将这一个硬币序列分成 n/s 个区间,每个区间含有 s 个硬币。

假设事件 L 表示存在超过长度 s 的最长的连胜序列,L 则不存在,事件 F 表示并不存在一个区间,所有硬币头部朝上。可以发现,事件 F 比事件 L 要强,因此 Pr{F}Pr{L}

考虑 Pr{F} 的值,那么有

Pr{F}=j=1n/s(1Pr{Aj,s})=(1lg2nn)n/selg2nnns=elg2n/s=2lgelg2n/s=1nlgn/s=1nlgn/(lgn2lglgn)1n

那么原来题目中所求概率为事件 Pr{L} 的概率值上界,那么有

Pr{L}=1Pr{L}1Pr{F}11n

从而完成证明。