我需要一个C函数来计算k值高达720的泊松分布。我需要一个高效的解决方案。
答案 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