.NET标准库中是否有一个类可以为我提供创建遵循高斯分布的随机变量的功能?
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)