将均匀分布转换为泊松分布

时间:2013-09-13 09:00:02

标签: c algorithm distribution probability poisson

我必须编写一个C程序来将随机数(例如从0到1)的均匀分布转换为泊松分布。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

使用Gnu科学图书馆GSL。有一个名为gsl_ran_poisson的函数:

  

此函数返回Poisson分布中的随机整数,平均值为mu。   泊松变量的概率分布是,   p(k)= {\ mu ^ k \ over k!} \ exp( - \ mu)   对于k> = 0。

否则,请查看代码并复制这些想法。

答案 1 :(得分:0)

我假设您想要编写一个C程序,可以从泊松分布中采样随机数,给出U(0,1)中的随机数。

通常,这是通过从U(0,1)获取数字的逆CDF来完成的。对于像泊松这样的离散分布,首先假设CDF函数在整数点之间是平滑的,然后我们应用适当的近似值(floor函数),将其转换为连续分布。

C ++中的数字配方(第3版)这本书也有完整的解释和C ++代码。第7.3.12节,第372页。