3

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

4

2 回答 2

3

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

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

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

于 2013-09-13T09:07:24.320 回答
0

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

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

C++ 中的数值食谱》(第 3 版)一书有完整的解释和 C++ 代码。第 7.3.12 节,第 372 页。

于 2013-09-13T10:41:47.543 回答