有人知道这个的良好实现吗?其许可证与非免费 iPhone 应用程序兼容?
正如这个问题所建议的,Boost 看起来绝对很棒。但据我所知,它仅适用于 C++。
最佳答案
不需要任何花哨的东西。任何拥有良好 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 ,请将 double 更改为 float ,使用 erfcf
函数,并将文字更改为单精度文字。
请记住,Objective-C 是对 C 的极其轻量级的扩展。每个 C 函数都是 Objective-C 函数,不需要包装或其他恶作剧。
关于iphone - objective-c 中的累积正态分布函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2785944/