1

我正在尝试生成具有指数分布的随机数。我找到了 Math.NET NuGet 包。它看起来不错,但我不知道如何生成这些数据的向量。

我已经包含了参考并尝试了类似的方法(受官方网站的启发) - 我知道 Uniform 不会生成指数值。:

 Generate.Uniform(100);

但是我得到:“在当前上下文中不存在生成。”

我也试过:

 Random rnd= new Random();
 double[] samples;
 double lambda = 0.1;
 Exponential.Samples(rnd, samples,lambda); 

在这里,我在最后一行得到“Invalid expression term ')'”和“; expected”。

4

1 回答 1

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命名空间。

于 2016-05-18T08:43:02.593 回答