博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
两道概率题-供大家周末把玩
阅读量:6414 次
发布时间:2019-06-23

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

题目

1.给定一个函数rand5(),该函数能等概率生成1-5之间的整数(包括1和5),如何用该函数等概率生成整数1-7?

解法

本以为很简单,做了以后才发现其实并不简单,这个题难就难在要求是等概率,贴出几个解法,供大家参考

下面代码来自StackOverflow

解法一

ContractedBlock.gif
代码

解法二(更直观一些)

ContractedBlock.gif
代码

2. 一个随机数生成函数f(),只产生数字1和0,生成1的概率是p,生成0的概率是1-p,如何利用该函数等概率生成1和0?(此题来自算法导论一书)

由于p(1-p)和(1-p)p是两个等概率事件,根据这个原理,可得如下代码

 
int
func()
{
int
i ;
int
j ;
while
(
true
)
{
i
=
f() ;
j
=
f() ;
if
(i
==
1
&&
j
==
0
)
return
1
;
else
if
(i
==
0
&&
j
==
1
)
return
0
;
}
}
http://www.cnblogs.com/graphics/archive/2010/07/10/1774942.html
你可能感兴趣的文章
Ubuntu 12.04上享用新版本Linux的功能
查看>>
logstash + grok 正则语法
查看>>
Zimbra开源版(v8.6)安装说明
查看>>
Android性能优化之TraceView和Lint使用详解
查看>>
linux centos7.2 安装mysq,nginx,php
查看>>
myrocks之事务处理
查看>>
基于pgrouting的路径规划之一
查看>>
LBS核心技术解析
查看>>
Fible Channel over Convergence Enhanced Ethernet talk about
查看>>
讨论:今日头条适配方案使用中出现的问题
查看>>
CSS3 3D翻转动画
查看>>
送给即将踏入软考征途的你
查看>>
要命啦!Word中快速录入大全,内含快捷键小技巧,快来一起学习!
查看>>
javascript实现音频mp3播放
查看>>
html5-离线缓存
查看>>
linux系统安装完后的常见工作
查看>>
在Linux服务器、客户端中构建密钥对验证进行远程连接
查看>>
揪出MySQL磁盘消耗迅猛的真凶
查看>>
和“C”的再遇
查看>>
一键安装kubernetes 1.13.0 集群
查看>>