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绘制理想分布

注意:本站所有文章除特别说明外,均为原创,转载请务必以超链接方式并注明作者出处。 标签:处理算法,泊松分布