使用普通分布在c#中生成随机数

时间:2014-11-22 13:47:06

标签: c# random numbers

我是c#的新手,我试图在c#中生成正常分布的数字。我上网了,我发现只有一些代码。我想使用内置的功能,而不是代码!有什么建议吗?

2 个答案:

答案 0 :(得分:2)

你仍然需要做一些编码:

  1. 定义您的正态分布。
  2. 来自它的样本。
  3. N.B您需要定义一次,然后进行采样而不是重新定义。

    也许这个小班可以提供帮助,然后你可以在你需要的代码中使用它......

        public class BoxMullerNormal
            {                       
                private MathNet.Numerics.Distributions.Normal normal;
    
                public BoxMullerNormal(double mean = 0,double std = .01)
                {
                    normal = new MathNet.Numerics.Distributions.Normal(mean,std);            
                }
    
                public override dynamic getRandom()
                {
                    // Implementation Uses C#MathNet.Numerics Normal Distribution Sampling
                    return normal.Sample();                          
                }
    }
    

    在应用程序开始时初始化类以定义法线,然后每次调用getRandom()进行采样。您也可以将该类添加到现有接口之一。

答案 1 :(得分:0)

MathNet Numerics库有许多不同的随机数生成器。我非常确定正态分布是其中一种选择。

Read this

如果你滚动到底部,我相信它会有你想要的东西。