您的位置:首页 > 其它

算法导论-概率分析和随机算法习题解

2012-05-04 11:54 399 查看

5.1-3 假设你希望以各1/2的概率输出0和1。你可以自由使用一个输出0或1的过程BIASED-RANDOM。它以概率p输出1,以概率1-p输出0,其中0 < p < 1,但是你并不知道p的值。给出一个利用BIASED-RANDOM作为子程序的算法,返回一个无偏向的结果,即以概率1/2返回0,以概率1/2返回1。作为p的函数,你的算法的期望运行时间是多少?


  解:代码:

while true:
x = BIASED-RANDOM()
y = BIASED-RANDOM()
if x != y:
return x


x != y 存在两种情况,x= 1, y = 0; x = 0, y = 1。这两种情况的概率相等,均为p(1-p),所以输出1和0的概率都是1/2。算法一次运行成功的概率为2p(1-p),且服从几何分布,期望是1/[2p(1-p)]。


5.2-2 在HIRE-ASSISTANT中,假设应聘者以随机的顺序出现,正好雇用两次的概率是多少?


  解: 两个事实:1. 第一位总是雇用; 2. 最好的总是雇用。 若要雇用两次,则第一位不能是最好的应聘者,且最好的应聘者应出现在比第一位应聘者要好的所有应聘者之前。即若第一位应聘者排名为i(i < n),则最好的应聘者n 应排在i+1, i+2, ... i+n-1之前。第一位应聘者的排名为i的概率为1/n,n排在i+1, i+2, ... i+n-1之前的概率是1/(n-i)。i 的取值为1 -> n-1,所以正好雇用两次的概率是Σn-1i=1 1/[i(n-i)] = 1/n * Hn-1。


5.3-5 证明程序PERMUTE-BY-SORTING的数组P中,所有元素都唯一的概率至少为1 - 1/n。


  解: 元素P[i] 唯一的概率为 [n3-(i-1)]/n3 。所以所有元素都唯一的概率为:




5.4-6 假设将n个球投入n个盒子里,每次投球都是独立的,并且每个球落入任何盒子的机会都相等。空盒子的期望数量是多少?正好有一个球的盒子的期望数量又是多少?


  解: 设空盒子的数量为X,正好有一个球的盒子的数量为Y。则有:






5-1 概率计数


  解: a) 对j = 1, 2, 3, ……n,设Xj 表示第j次INCREMENT的增量,Vn 表示n次INCREMENT后计数器表示的值,则有Vn = X1 + X2 + ……Xn。所以有:



设Cj 表示第j次INCREMENT开始时计数器的值,则有:



Cj = i 时,Xj 有两种取值: 0, 概率为1 - 1/(ni+1 - ni);ni+1 - ni, 概率为1/(ni+1-ni),所以:



    又:



    所以Xj的期望为1,Vn的期望为n。

  b) ni+1 - ni = 100,Xj 相互独立,所以有:

    


又:



    所以方差为99n。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: