概率问题

本文探讨如何基于一个偏斜的随机数发生器(以概率p输出1,以概率1-p输出0)来构造一个新的随机数发生器,使其以1/2的概率输出0和1。首先介绍了如何通过两次调用来实现这一目标,然后引申到如何使用一个概率为1/2的随机函数生成概率为0.3和0.7的0和1。进一步扩展到生成等概率的1到N之间的数字的方法。
摘要由CSDN通过智能技术生成
  1. 有个输出0和1的BIASED RANDOM,它以概率p输出1,以概率1-p输出0,以此RANDOM函数为基础,生成另一个RANDOM函数,该函数以1/2的概率输出1,以1/2的概率输出0

题目解答:

两次调用该RANDOM函数,如果其概率为P(x),调用2次

P(1) = p P(0) = 1-p

P’(1) =p P’(0) = 1-p

概率如下:

11 pp 10 p(1-p)

01 (1-p)p 00 (1-p)(1-p)


int random_0_1()
{
	int i = RANDOM();
	int j = RANDOM();
	int result;
 
	while (true)
	{
		if (i == 0 && j == 1)
		{
			result = 0;
			break;
		}
		else if (i == 1 && j == 0)
		{
			result = 1;
			break;
		}
		else
			continue;
	}
 
	return result;

原文:https://blog.csdn.net/alexingcool/article/details/7862009
2 引申
有一个函数fun能返回0和1两个值,返回0和1的概率都是1/2,问怎么利用这个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值