C#でのランダムなガウス分布の生成方法


using System;
class Program
{
    static void Main()
    {
        Random random = new Random();
        double mean = 0; // 平均
        double standardDeviation = 1; // 標準偏差
        double x1 = random.NextDouble();
        double x2 = random.NextDouble();
        double y1 = Math.Sqrt(-2.0 * Math.Log(x1)) * Math.Cos(2.0 * Math.PI * x2);
        double y2 = Math.Sqrt(-2.0 * Math.Log(x1)) * Math.Sin(2.0 * Math.PI * x2);
        double randomValue = mean + standardDeviation * y1; // ガウス分布に従う乱数
        Console.WriteLine("Random value from Gaussian distribution: " + randomValue);
    }
}

上記のコードでは、Randomクラスを使用して0から1までの一様乱数を生成し、Box-Muller変換を適用してガウス分布に従う乱数を生成しています。mean変数はガウス分布の平均値を表し、standardDeviation変数は標準偏差を表します。

この方法を使用すると、C#で簡単にガウス分布に従うランダムな値を生成することができます。必要に応じて、平均や標準偏差を変更してガウス分布の特性を調整することもできます。