質問

プロジェクトには、数式を含む仕様があるため、実装する必要があります。これらの式には、フロートを取り、確率を出力する累積標準正規分布関数が存在します。この関数はΦで表されます。この関数を計算するJavaライブラリが存在しますか?

役に立ちましたか?

解決 3

同僚は、以前使用していた colt を提案しました。この関数参照文書の例とまったく同じ結果になります。

他のヒント

Apache Commons-Math には、探しているものがあります。

具体的には、 NormalDistribution クラス。

正確なコードが必要な場合、これはOpenOffice Calcで使用されているのと同じ関数のようです(Javaで動作するように変更を加えました):

// returns the cumulative normal distribution function (CNDF)
// for a standard normal: N(0,1)
double CNDF(double x)
{
    int neg = (x < 0d) ? 1 : 0;
    if ( neg == 1) 
        x *= -1d;

    double k = (1d / ( 1d + 0.2316419 * x));
    double y = (((( 1.330274429 * k - 1.821255978) * k + 1.781477937) *
                   k - 0.356563782) * k + 0.319381530) * k;
    y = 1.0 - 0.398942280401 * Math.exp(-0.5 * x * x) * y;

    return (1d - neg) * y + neg * (1d - y);
}

ここで見つけました: http://www.codeproject.com/ Messages / 2622967 / Re-NORMSDIST-function.aspx

SuanShu、 Java数値解析ライブラリは、正規分布と他の多くの統計分布を計算します。

約10行のコードしか必要としないべき級数式を使用できます。たとえば、 http://introcs.cs.princeton.edu/java/22library/Gaussian.java.html (関数 Phi

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top