ランダムガウス変数 質問する

ランダムガウス変数 質問する

.NET の標準ライブラリに、ガウス分布に従うランダム変数を作成する機能を提供するクラスはありますか?

ベストアンサー1

Jarrett の Box-Muller 変換の使用の提案は、手っ取り早い解決策として適しています。簡単な実装は次のとおりです。

Random rand = new Random(); //reuse this if you are generating many
double u1 = 1.0-rand.NextDouble(); //uniform(0,1] random doubles
double u2 = 1.0-rand.NextDouble();
double randStdNormal = Math.Sqrt(-2.0 * Math.Log(u1)) *
             Math.Sin(2.0 * Math.PI * u2); //random normal(0,1)
double randNormal =
             mean + stdDev * randStdNormal; //random normal(mean,stdDev^2)

おすすめ記事