教程集 www.jiaochengji.com
教程集 >  脚本编程  >  C语言  >  正文 用C语言生成泊松分布随机数实例源码

用C语言生成泊松分布随机数实例源码

发布时间:2018-09-19   编辑:jiaochengji.com
教程集为您提供用C语言生成泊松分布随机数实例源码等资源,欢迎您收藏本站,我们将为您提供最新的用C语言生成泊松分布随机数实例源码资源
泊松分布随机数是一肺靳?陪?率?彦常?到的滕散?率分?,适合于描述单位时间内随机事件发生的次数的机率分布,具体公司可以网上搜索一下。

帮一个朋友做管理学科研究生阶段的一个作业,是对库存系统仿真,其中里面零售商的需求是泊松分布的随机数。需要用C语言产生泊松分布的随机数,通过找资料和编程实践,简单的程序写了出来,如下,供参考。

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy6417')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy6417>algorithm poisson random number (Knuth):
init:
   Let L ← exp(−λ), k ← 0 and p ← 1.
do:
   k ← k 1.
   Generate uniform. random number u in [0,1] and let p ← p × u.
while p >= L.
return (k − 1).</td></tr></table>



C语言实现的泊松分布随机数的代码如下:

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy4614')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy4614>#include <stdio.h>
#include <math.h>
#include <time.h>
 
double U_Random();
int possion();
 
 
void main()
{
        double u = U_Random();
        int p = possion();
        printf("%fn",u);
        printf("%dn",p);
 
}
 
int possion()  /* 产生一个泊松分布的随机数,Lamda为总体平均数*/
{
        int Lambda = 20, k = 0;
        long double p = 1.0;
        long double l=exp(-Lambda);  /* 为了精度,才定义为long double的,exp(-Lambda)是接近0的小数*/
        printf("%.15Lfn",l);
        while (p>=l)
        {
                double u = U_Random();
                p *= u;
                k ;
        }
        return k-1;
}
 
double U_Random()   /* 产生一个0~1之间的随机数 */
{
        double f;
        srand( (unsigned)time( NULL ) );
        f = (float)(rand() % 100);
        /* printf("%fn",f); */
        return f/100;
}</td></tr></table>



关于这个简单的库存仿真的全部代码:https://github.com/smilejay/c-cpp/tree/master/inventory-simulation

您可能感兴趣的文章:
用C语言生成泊松分布随机数实例源码
photoshop合成一张落日湖泊场景实例制作教程
R语言 决策树和随机森林 回归分析
想系统学习GO语言(Golang
php生成随机产生六位数密码的代码
python c 和java的区别有哪些
Go语言的主要特性和发展影响
Python的特点(优点和缺点)
Go 语言十年而立,Go2 蓄势待发
python语言是由哪个人创造的

[关闭]
~ ~