2010-05-07 64 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