Objective C中的累积正态分布函数

4

有没有一个好的实现,其许可证与非免费iPhone应用程序兼容?

正如这个问题所建议的那样,Boost看起来绝对棒极了。但据我所知,它只能用于C++。

C/C++中的累积正态分布函数

2个回答

12

不需要什么高级的东西。任何一个拥有优秀C99数学库(比如iPhone)的平台都已经拥有了你所需要的一切——特别是 erfc 函数,它只是稍微变化了一下:

#import <math.h>

double cumulativeNormal(double x) {
    return 0.5 * erfc(-x * M_SQRT1_2);
}

请注意,这是针对标准正态分布(即均值=0,方差=1)的。您将需要使用适当的缩放--因此对于某些均值和方差,它将是:

return 0.5 * erfc(((mean - x)/sqrt(variance)) * M_SQRT1_2);

如果您不需要双精度,将double改为float,使用erfcf函数,并将字面量更改为单精度字面量。

请记住,Objective-C是C语言的一个非常轻量级的扩展。每个C函数都是Objective-C函数,无需包装或其他花招。


2

你特别希望有一个Objective-C解决方案,对吧?因为如果你还没有意识到,你可以在项目中使用C++库


哇,我不知道这个,我希望我能接受两个答案,因为它们都很棒。 - William Jockusch
没关系。Stephen提供了一个原始答案,我只是链接到另一个可能会帮助你的问题 :) - Jorge Israel Peña

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接