我必须编写一个C程序来将随机数(例如从0到1)的均匀分布转换为泊松分布。有人可以帮忙吗?
答案 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页。