.NET的标准库中是否有一个类可以创建遵循高斯分布的随机变量的功能?
我一直在四处寻找,但我不知道该怎么办.
我发现这个页面在最后一段中说:
使用这个简单的方法得到一个从泊松分布中取得的随机数的简单生成器:如果x 1,x 2,...是一个在0和1之间均匀分布的随机数序列,k是第一个整数,乘积x 1 ·x 2 ·...·x k + 1 <e -λ
我发现了另一个描述如何生成二项式数的页面,但我认为它使用的是泊松生成的近似值,这对我没有帮助.
例如,考虑二项式随机数.二项式随机数是硬币的N次投掷中的头数,在任何单次投掷中具有头部的概率p.如果在区间(0,1)上生成N个均匀随机数并计算小于p的数,则计数是具有参数N和p的二项式随机数.
我知道有库可以做到这一点,但我不能使用它们,只能使用语言提供的标准统一生成器(在本例中为java).
我想使用一个随机数生成器,在高斯范围内创建随机数,我可以自己定义中位数.我已经在这里问了一个类似的问题,现在我正在使用这段代码:
class RandomGaussian
{
private static Random random = new Random();
private static bool haveNextNextGaussian;
private static double nextNextGaussian;
public static double gaussianInRange(double from, double mean, double to)
{
if (!(from < mean && mean < to))
throw new ArgumentOutOfRangeException();
int p = Convert.ToInt32(random.NextDouble() * 100);
double retval;
if (p < (mean * Math.Abs(from - to)))
{
double interval1 = (NextGaussian() * (mean - from));
retval = from + (float)(interval1);
}
else
{
double interval2 = (NextGaussian() * (to - …Run Code Online (Sandbox Code Playgroud)