目标C中的累积正态分布函数

时间:2010-05-07 03:06:55

标签: iphone statistics

任何人都知道这个许可证与非免费iPhone应用程序兼容的良好实现吗?

根据这个问题的建议,Boost看起来非常精彩。但是我可以说,它只能在C ++中使用。

Cumulative Normal Distribution Function in C/C++

2 个答案:

答案 0 :(得分: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);

如果您不需要双精度,请将双精度更改为浮点数,使用erfcf函数,并将文字更改为单精度文字。

请记住,Objective-C是C的一个非常轻松的扩展。每个C函数都是一个Objective-C函数,不需要包装或其他恶作剧。

答案 1 :(得分:2)

所以你特别想要一个客观的解决方案,对吗?因为,如果您还不知道,可以使用C++ libraries within your project