我正在尝试生成具有指数分布的随机数。我找到了Math.NET NuGet包。它看起来不错,但我无法弄清楚如何生成这类数据的向量。
我已经包含了参考资料并尝试过类似的东西(受官方网站启发) - 我知道Uniform不会产生指数值。:
Generate.Uniform(100);
但是我得到:"当前上下文中不存在Generate。 "
我也尝试过:
Random rnd= new Random();
double[] samples;
double lambda = 0.1;
Exponential.Samples(rnd, samples,lambda);
在这里,我得到"无效的表达术语')' "和" ;预期"在最后一行。
答案 0 :(得分:0)
Samples
函数需要已经分配数组,因此您可以重复使用它。它将填满整个数组。
Random rnd = new Random();
double lambda = 0.1;
double[] samples = new double[200];
Exponential.Samples(rnd, samples, lambda);
但是,你已经要求一个向量,而不是一个数组:
Vector<double> v = CreateVector.Random<double>(200, new Exponential(lambda, rnd));
您遇到的错误是与Math.NET Numerics无关的C#语法错误(并且不会出现在您实际发布的代码中)。对于Generate
,您需要打开MathNet.Numerics
命名空间。