2010-05-07 61 views

回答

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函数,不需要包装或其他恶意代码。

2

所以你特别想要一个Objective-C的解决方案,正确吗?因为,如果你还没有意识到,你可以使用C++ libraries within your project

+0

哇,我不知道,我希望我能接受这两个答案,因为两者都很棒。 – 2010-05-07 04:26:00

+0

不用担心。斯蒂芬提供了一个原始的答案,我只是联系到另一个可能帮助你的问题:) – 2010-05-07 06:00:15