生成Poisson泊松随机序列的代码

来源:互联网 发布:mac 思维导图 知乎 编辑:程序博客网 时间:2024/05/01 09:45

 

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include  "math.h"


int PoissonRandom(double dbLambda)
{
    int n = 0;
    double limit = exp(-dbLambda);
    double x = rand() / (double) RAND_MAX ;
    while (x > limit)
    {
        n++;
        x *= rand() / (double) RAND_MAX ;
    }
    return n;
}


int main(void)
{
    int iLambda = 15;
    int iSeed = 12;
    srand(iSeed);
    for (int j = 0; j < 200; j++)
    {
        int iPoi = PoissonRandom(iLambda);
        printf("No %03d : %d/n", j, iPoi);
    }
    return 0;
}