C中泊松分布的计算

时间:2009-06-29 10:30:48

标签: c distribution poisson

我需要一个C函数来计算k值高达720的泊松分布。我需要一个高效的解决方案。

4 个答案:

答案 0 :(得分:6)

答案 1 :(得分:3)

泊松随机生成器

int poissonRandom(double expectedValue) {
  int n = 0; //counter of iteration
  double limit; 
  double x;  //pseudo random number
  limit = exp(-expectedValue);
  x = rand() / INT_MAX; 
  while (x > limit) {
    n++;
    x *= rand() / INT_MAX;
  }
  return n;
}

我想我的紧急需求已经很晚了。

答案 2 :(得分:1)

如果您想自己计算而不是使用库 您可以使用公式计算它.e ^ k * e ^( - lambda)/ k!
你可以使用log(n!)= log(n)+ log(n-1!)和动态编程

答案 3 :(得分:0)

我想这对于原始请求来说已经太迟了,但我认为有些答案忽略了这一点 - 我不认为他想从分发中生成随机数,但是想要分发本身。这是一个执行此操作的功能 避免计算可能变大的因子。

val1