zoukankan      html  css  js  c++  java
  • 泊松分布随机数

    一、功能

    产生泊松分布的随机数。

    二、方法简介

    泊松分布的概率密度函数为

    [f(x)=frac{lambda ^{x}e^{-lambda }}{x!} qquad xin left { 0,1,...,lambda ight } ]

    (P(lambda))表示。泊松分布的均值为(lambda),方差为(lambda)

    定理(lambda > 0)(x)是整数,(u_i)是(0,1)区间上均匀分布的随机数,即(u_{i} sim U(0, 1)),且有

    [prod_{i=0}^{x}u_{i}geqslant e^{-lambda }> prod_{i=0}^{x+1}u_{i} ]

    那么(x)是一个以(lambda)为均值的泊松分布的随机变量。

    产生泊松分布随机变量(x)的具体算法如下:

    1. (b = 1,i=0)
    2. 产生均匀分布的随机数(u_i),即(u_{i} sim U(0, 1))
    3. 计算(bleftarrow bu_{i})
    4. 如果(bgeqslant e^{-lambda }),那么(ileftarrow i+1),返回到2;
    5. (x = i)

    三、使用说明

    是用C语言实现产生二项分布随机数的方法如下:

    /************************************
    	lambda  ---泊松分布均值lambda
    	s       ---随机数种子
    ************************************/
    #include "math.h"
    #include "uniform.c"
    
    int poisson(double lambda, long int *s)
    {
    	int i;
    	int x;
    	double a;
    	double b;
    	double 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);
    }
    

    uniform.c文件参见均匀分布的随机数

  • 相关阅读:
    python 中: lambda
    python 学习 argparse
    深度学习 ——style reconstruction
    简单linux命令1
    intptr_t 指针
    MySQL数据库基本命令-1
    交换机和路由器的区别
    UML图的使用
    操作系统总结链接
    操作系统总结
  • 原文地址:https://www.cnblogs.com/liam-ji/p/11679026.html
Copyright © 2011-2022 走看看