C/C++中均匀分布和Possion

11 篇文章 0 订阅

        泊松分布适合于描述单位时间内随机事件发生的次数的概率分布。如某一服务设施在一定时间内受到的服务请求的次数,电话交换机接到呼叫的次数、汽车站台的候客人数、机器出现的故障数、自然灾害发生的次数、DNA序列的变异数、放射性原子核的衰变数等等。

泊松分布的概率质量函数为:

p(x=k)=\frac{e^{-\lambda }}{k!}

 

 在产生泊松分布时,首先需要产生均匀分布,下面给出了均匀分布和Possion分布的代码。

#include <math.h>
#include <stdlib.h>
#include <cmath>

//产生一(a,b)的均匀分布
double U_Randa(double a, double b)
{    
    //产生伪随机数
	double x = rand(); 
	return  a+(b-a)*(x+1)/(RAND_MAX+1);
}

//泊松分布,Lamda为唯一的一个参数,均值和方差
double Possion(double Lamda)
{
    srand(time(NULL));
	double  u; 
	int x = -1;
	double log1, log2;
	log1 = 0;
	log2 = -Lamda;

	do
	{
		u = U_Randa(0,1); 
		log1 += log(u);
		x++; 
	 }while(log1 >= log2);
	return  x>0 ? x:0; 
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值