怎样用C语言模拟泊松分布

     每个事件的时间间隔按照指数分布,就可以满足事件在单位时间内发生的次数是按照泊松分布的

 

      先顺便说一句,关于二项分布这个名称可以这样认为:发生k个事件的概率是二项展开式中的第k项。概率与二项展开式紧密联系。

 

 

      二项分布衡量的是“一堆”(n个)相互独立的事件,发生“k”个的概率。当这一堆事件的数目趋向无穷大的时候,发生k个事件的概率概率就可以用泊松分布来求。泊松分布是二项分布的一个极限。

 

 

     泊松过程可以看作是带时间参数的泊松分布。泊松过程描述的是时间间隔t内,发生k个独立事件的概率;泊松分布可以看作是单位时间发生k个事件的概率。

 

 

      指数分布衡量的是两个独立事件在一定时间间隔t内发生的概率。注意是时间间隔t“内”,只给定了一个时间界限,具体这个时间间隔中的什么时候并不知道。比如问:两个事件在t内发生的。

 

 

      处理与“时间”相关的概率问题用指数分布和泊松过程;处理与“个数”相关的问题用泊松分布和二项分布。泊松分布,泊松过程,二项分布,指数分布都是处理独立事件的。

 

 

      泊松分布是二项分布的一个极限,泊松分布是泊松过程的一个特例。如果每两个事件发生的时间间隔都遵循指数分布,那么这些事件也可以用泊松分布来描述,反之也成立,也就是说泊松分布和指数分布都是同一事物不同侧面的描述

 

      P分布与指数分布一样是从另一个角度描述泊松过程,P分布描述的是有n个事件在时间t内发生的概率;或者说时间t发生大于等于n个事件的概率。

 

用c语言如何产生负指数分布的时间序列

 

double expntl(double x) { /*负指数分布随机数*/ double z; /*srand(time(NULL));*/ do{ z=((double)rand()/RAND_MAX); }while((z == 0)||(z == 1)); /*printf("%f/t",z);*/ return(-x*log(z)); }/*expntl*/ //另一种写法 //产生负指数分布的随机数 inline double exprand(double lanmada) { int rnd; double r,x; while(1) { rnd=rand(); if(rnd!=0 && rnd!=RAND_MAX) break; } r=double(rnd)/RAND_MAX; x=(-1/lanmada)*log(r); return x; }  

其中

可以是一个或多个服务台。多个服务台可以是平行排列的,也可以是串连排列的。服务时间一般也分成确定型和随机型两种。例如,自动冲洗汽车的装置对每辆汽车冲洗(服务)时间是相同的,因而是确定型的。而随机型服务时间v 则服从一定的随机分布。如果服从负指数分布,则其分布函数是

  排队论

式中μ为平均服务率,1/μ为平均服务时间。

参见排队论

http://www.hudong.com/wiki/%E6%8E%92%E9%98%9F%E8%AE%BA

你可能感兴趣的:(C/C++)