博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一道概率算法
阅读量:4630 次
发布时间:2019-06-09

本文共 589 字,大约阅读时间需要 1 分钟。

问题:一个API,以概率p输出1,以概率1-p输出0,请你设计以算法,call这个API,以概率1/2输出1,以概率1/2输出0

 

答案:连续call 2次这个api, 如果输出序列是01,那么就输出0,如果是10,那么就输出1,是其它情况(00,11),重做一遍前面的步骤

 

算法的证明:

第一轮call 2次这个api,产生的序列的概率是01 (1-p)*p, 10 p*(1-p), 00 (1-p)^2, 11 p^2,按照我们的算法(答案),以 (1-p)*p的概率输出0,以p*(1-p)的概率输出1,以(1-p)^2+p^2的概率重新执行我们的算法,此时输出0的概率是(1-p)*p + ((1-p)^2+p^2)*(1-p)*p, 输出1的概率是p*(1-p) + ((1-p)^2+p^2)*p*(1-p),再以((1-p)^2+p^2)^2的概率重现执行我们的算法。。。可以看出,按照我们的算法,产生1的概率是一个级数,并且是收敛的,因为0<(1-p)^2+p^2<1,很容易计算它等于0.5,同理产生0的概率也是0.5。

 

类似的问题:

一个API,能等概率地产生1-5的整数,如果call这个api,等概率地产生1-7的整数

转载于:https://www.cnblogs.com/Torstan/archive/2012/05/21/2511737.html

你可能感兴趣的文章
Qt qml 模拟iphone slide to unlock 的聚光动画文字效果
查看>>
查看线程的运行状态
查看>>
Flink学习笔记:Operators之CoGroup及Join操作
查看>>
[WCF] - Odata Service 访问失败,查看具体错误信息的方法
查看>>
【2019/4/30】周进度报告
查看>>
.net程序员面试题
查看>>
团队分数分配方法——BY 李栋
查看>>
docker获取镜像很慢解决办法
查看>>
学习-现代交换原理与通信技术
查看>>
【编程题目】左旋转字符串 ☆
查看>>
SQL Server 2008 R2如何开启数据库的远程连接
查看>>
笔记一:python安装和执行
查看>>
关于字符串的分割问题
查看>>
Tornado 类与类组合降低耦合
查看>>
2009 Competition Highlights by ICPC Live
查看>>
ssh远程操作服务器
查看>>
树莓派Android Things物联网开发:创建一个Things项目
查看>>
GIT使用方法
查看>>
第三阶段 10_JavaWeb基础_
查看>>
裁员浪潮,互联网人该何去何从?
查看>>