1. 泊松分布随机数
泊松分布概率函数为:

用P(λ)表示。泊松分布的均值为λ,方差为λ。
定理 若λ>0,x是整数,μi是(0,1)区间上均匀分布随机数,即μi ~ U(0,1),且有:

那么x是一个以λ为均值的泊松分布随机变量。
2. 泊松分布随机数算法

3. 函数说明(poisson.h)
#include <math.h> #include "uniform.h" int poisson(double lambda, long int *s); int poisson(double lambda, long int *s) { int i,x; double a,b,u; a=exp(-lambda); i=0; b=1.0; do { u=uniform(0.0,1.0,s); b*=u; i++; }while(b>=a); x=i-1; return(x); }
4. 主函数实现
#include <stdio.h> #include "poisson.h" int main(void) { int i,j,x; long int s; double n; n=4.0; s=13579; FILE *fp; //存储最终计算值 fp=fopen("data.dat","w"); //打开文本 // i,j参数设定正确 for(i=0;i<10;i++) { for(j=0;j<5;j++) { x=poisson(n,&s); printf("%11d",x); fprintf(fp,"%d\n",x); //存储数值 } printf("\n"); } fclose(fp); //关闭文本 return 0; }
5. 执行结果

6. 使用软件QtiPlot,绘制输出波形

7. 利用Python绘制理想分布

评论 (0)
暂无评论,快来抢沙发吧!