Math.Net как сгенерировать вектор экспоненциального распределения случайных чисел
Я пытаюсь генерировать случайные числа с экспоненциальным распределением. Я нашел пакет Math.NET NuGet. Это выглядит красиво, но я не могу понять, как создать вектор данных такого типа.
Я включил ссылку и попробовал что-то вроде этого (вдохновлено официальным сайтом) - я знаю, что Uniform не будет генерировать экспоненциальные значения.
Generate.Uniform(100);
Однако я получаю: "Создать это не существует в текущем контексте".
Я также попробовал:
Random rnd= new Random();
double[] samples;
double lambda = 0.1;
Exponential.Samples(rnd, samples,lambda);
Здесь я получаю "Недопустимое выражение" и "; ожидается" в последней строке.
1 ответ
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));
Полученная ошибка - синтаксическая ошибка C#, не связанная с Math.NET Numerics (и не присутствующая в коде, который вы фактически разместили здесь). За Generate
вам нужно открыть MathNet.Numerics
Пространство имен.