泊松随机数

 泊松分布方程是由法国数学家泊松(1781-1840)发现并创立的,主要是描述小概率事件发生的概率,在体育比赛中广泛应用来预测比赛结果。如:使用时只要输入球队的历史平均入球(0.01-4球),即可预测球队在本次比赛中可能出现的结果。

 

常用于描述单位时间、单位平面或单位空间中罕见“质点”总数的随机分布规律。
Piosson分布的条件
由于Piosson分布是二项分布的特例,所以,二项分布的三个条件也就是Piosson分布的适用条件。
另外,单位时间、面积或容积、人群中观察事件的分布应该均匀,才符合Piosson分布。
注二项分布的条件:

(1) 每次实验只有两类对立的结果;
(2) n次事件相互独立;
(3) 每次实验某类结果的发生的概率是一   个常数。

 

#include <math.h>

int GetPoissionRand_r(double expectValue);// 生成期望值为expectValue泊松随机数

 

int CTestDlg:: GetPoissionRand_r(double expectValue)
// 操作结果:生成期望值为expectValue泊松随机数
{
 double x = rand() / (double)(RAND_MAX + 1); // x均匀分布于[0, 1)
 int k = 0;
 double p = exp(-expectValue);   // pk为泊松分布值
 double s = 0;       // sk用于求和p0+p1+...+pk-1

 while (s <= x)
 { // 当sk <= x时循环, 循环结束后sk-1 <= x < sk
  s += p;        // 求和
  k++;
  p = p * expectValue / k;   // 求下一项pk
 }
 return k - 1;       // k-1的值服从期希值为expectValue的泊松分布
}

 

 int nTemp;
 nTemp= GetPoissionRand_r(10);
 CString strTemp;
 strTemp.Format("%d",nTemp);
 AfxMessageBox(strTemp);

 

 

From http://blog.sina.com.cn/s/blog_4171e80d0100fjrd.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值