using System;
namespace Masuit.Tools;
public static class RandomExtensions
{
///
/// 生成真正的随机数
///
///
///
///
public static int StrictNext(this Random r, int maxValue = int.MaxValue)
{
return new Random(BitConverter.ToInt32(Guid.NewGuid().ToByteArray(), 0)).Next(maxValue);
}
///
/// 产生正态分布的随机数
///
///
/// 均值
/// 方差
///
public static double NextGauss(this Random rand, double mean, double stdDev)
{
double u1 = 1.0 - rand.NextDouble();
double u2 = 1.0 - rand.NextDouble();
double randStdNormal = Math.Sqrt(-2.0 * Math.Log(u1)) * Math.Sin(2.0 * Math.PI * u2);
return mean + stdDev * randStdNormal;
}
}