/// <summary>
/// 符合高斯分布的随机数生成
/// </summary>
/// <param name="miu">均值</param>
/// <param name="sigma2">方差</param>
/// <returns></returns>
public double GetGaussDistributeRandom(double miu, double sigma2)
{
System.Random ran = new System.Random(GetRandomSeed());
double r1 = ran.NextDouble();
double r2 = ran.NextDouble();
double r = Math.Sqrt((-2) * Math.Log(r2)) * Math.Sin(2 * Math.PI * r1);
double result = miu + sigma2 * r;
return result;
}
/// <summary>
/// 获取随机种子
/// </summary>
/// <returns></returns>
public static int GetRandomSeed()
{
byte[] bytes = new byte[4];
System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider();
rng.GetBytes(bytes);
return BitConverter.ToInt32(bytes, 0);
}
【Unity】符合高斯分布的随机数生成
最新推荐文章于 2024-06-03 18:14:41 发布