一随机数以概率 p 生成0,以概率(1-p)生成1,怎样生成等概率的 0 和 1 ?

招聘网站评价

这涉及到概率 分布的内容了,其实也简单只要能找到一个概率为1/2p的函数就解决了.

另外还有一个比较方便的实现:
一随机数f(x)以概率 p 生成0,
那么设g(x)=f(x)>0?0:1;  刚g(x)以概率 1-p 生成0.
所以f(x),g(x)同时生成0的概率为p(1-p)等于同时生成1的概率.
得等概率随机数
function g(x){
  int v=f(x)+g(x);
  if(v==0){
    return 0;  //1.f(x)g(x)同时为0
  else if(v==2){
    return 1;  //2.f(x)g(x)同时为1
  }else{
    g(x);  //3.f(x)g(x)一个为0一个为1,重新生成随机数
  }
}

上面第3步的概率为p^2+(1-p)^2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值