Ste*_*non 12
不需要任何花哨的东西.任何具有良好C99数学库(如iphone)的平台已经拥有了您需要的一切 - 特别是erfc功能,这是一个轻微的变体:
#import <math.h>
double cumulativeNormal(double x) {
return 0.5 * erfc(-x * M_SQRT1_2);
}
Run Code Online (Sandbox Code Playgroud)
注意这是标准正态分布(即均值= 0,方差= 1),您需要使用适当的缩放 - 所以对于某些均值和方差,它将是:
return 0.5 * erfc(((mean - x)/sqrt(variance)) * M_SQRT1_2);
Run Code Online (Sandbox Code Playgroud)
如果您不需要双精度,请将双精度更改为浮点数,使用该erfcf函数,并将文字更改为单精度文字.
请记住,Objective-C是C的一个非常轻松的扩展.每个C函数都是Objective-C函数,不需要包装或其他恶作剧.