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 Пространство имен.

Другие вопросы по тегам