能否使vc中的rand函数转化为泊松分布?

来源:百度知道 编辑:UC知道 时间:2024/06/19 20:04:50
vc中的rand函数是均匀分布的,能否将其转化为泊松分布?

这个我不是很专业,也不知道哪里有专门的泊松分布方面的函数。但是我认为可以想点近似模拟的办法吧,比如要生成在1-9范围内的泊松分布,先生成一个均匀分布的随机数,再依照这个随机数的取值再次随机决定是否取这个数,把值远离5的数字取到的概率向下砍,把5附近的数字取到的概率调大。思路就是这样,希望能对你有帮助。

int Poisson(double expectedvalue){
int n=0; //counter of iterations
double limit; //exp(-u)
double x; //pseudorandom
limit = exp(-expectedvalue);
x = rand()/(double)INT_MAX;
while(x>limit){
n++;
x *= (double)rand()/(double)INT_MAX;
}
return n;
}

这个是c代码,希望对你有帮助!