《算法导论》笔记(3) 有关概率论

短篇,关于第5章。概率论的一些习题。

5.1-2,Random(0,1)只返回0和1,这里有个坑是二项式分布的问题,直接求和不可取。为得到random(a,b),应该将random(0,1)重复N次后,按顺序放入一个N位2进制数字中,对(b-a+1)取模,即得random(a,b)。复杂性为theta(n)。

function random(a,b){
  for i= 1 to N
    random += random(0,1)<<1
  return random %(b-a+1)
}

5.1-3,因为random(0,1)时输出1概率为p,输出0概率为1-p,那么第一次为1,第二次为0,概率为1/4。也就是说第一次与第二次相异的概率为1/2。

function real_random(){
return (random(0,1) xor random(0,1))
}

5.3-5 n个元素有random(1,n^3)的优先级,所有元素都唯一的概率是[(n^3)!]/[(n^3-n)!*(n^3)^n],展开可以得到[(n^3)!]/[(n^3-n)!*(n^3)^n]>1-1/n。

5.4-4 P1=P(k,n)/k^n是所有人不同的概率,P2=k*(k-1)*P(k-1,n)/k^n是只有2个人相同的概率。P3=1-P1-P2是至少3个人相同的概率。注:公式P(i,j)是j个中取i个元素的全排列。

5.4-5 按照直觉是n/ln(n),根据例题逆推的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值