高斯随机数发生器似乎不起作用

时间:2016-07-12 22:58:55

标签: c# random gaussian

我有一种方法可以生成随机数,但似乎没有遵循高斯分布,为了进一步复杂化,我将值作为“字节”返回。我真的不知道这个算法是如何工作的,我试着研究维基百科,但收效甚微。有谁知道为什么这似乎不起作用?

        private byte RndGaussian(byte mean, byte stdDev)
    {
        // From stackoverflow user 'yoyoyoyosef'.
        double u1 = rnd.NextDouble(); // These are uniform(0,1) random doubles
        double u2 = rnd.NextDouble();
        double randStdNormal = Math.Sqrt(-2.0 * Math.Log(u1)) * Math.Sin(2.0 * Math.PI * u2); // Random normal(0,1)
        byte randNormal = Convert.ToByte(mean + stdDev * randStdNormal); // Random normal(mean,stdDev^2)
        return randNormal;
    }

1 个答案:

答案 0 :(得分:0)

我修复了这个问题(虽然我不知道它为什么会起作用),但只是将值放在stddev中的值除以3,以便实现我想要的值范围。它作为字节返回类型工作正常。