C# нормальное случайное число [дубликат]

У меня еще нет способности добавить "комментарии", таким образом, я добавляю это как ответ: это было предложено Joel Spolsky , что такие вопросы будут лучше всего формулироваться как "один инструмент на ответ" - это позволило бы голосовать по отдельным средствам разработки, таким образом, более вероятно, даст Вам список, в порядке популярности, лучших инструментов для имения.

24
задан Community 23 May 2017 в 11:46
поделиться

6 ответов

См. Эту статью CodeProject: Генерация простых случайных чисел . Код очень короткий, и он генерирует выборки из равномерного, нормального и экспоненциального распределений.

21
ответ дан 28 November 2019 в 23:21
поделиться

This library is pretty good also:

.NET random number generators and distributions

5
ответ дан 28 November 2019 в 23:21
поделиться

You might be interested in Math.NET, specifically the Numerics package.

Caveat: The numerics package targets .NET 3.5. You may need to use the Iridium package if you are targeting an earlier version...

12
ответ дан 28 November 2019 в 23:21
поделиться

Вот пример C, который возвращает два значения (rand1 и rand2) только потому, что алгоритм эффективно это делает. Это полярная форма преобразования Бокса-Мюллера .

void RandVal (double mean1, double sigma1, double *rand1, double mean2, double sigma2, double *rand2)
{
double u1, u2, v1, v2, s, z1, z2;

do {
    u1 = Random (0., 1.);  // a uniform random number from 0 to 1
    u2 = Random (0., 1.);
    v1 = 2.*u1 - 1.;
    v2 = 2.*u2 - 1.;
    s = v1*v1 + v2*v2;
} while (s > 1. || s==0.); 

z1 = sqrt (-2.*log(s)/s)*v1;
z2 = sqrt (-2.*log(s)/s)*v2;
*rand1 = (z1*sigma1 + mean1);
*rand2 = (z2*sigma2 + mean2);
return;

}

7
ответ дан 28 November 2019 в 23:21
поделиться

Sorry I don't have any code for you but I can point you to some algorithms on Wikipedia. The algorithm you choose I guess depends on how accurate you want it and how fast it needs to be.

2
ответ дан 28 November 2019 в 23:21
поделиться

Библиотека MetaNumerics , также .NET, вычислит нормальное распределение (и почти все остальное из статистики) очень быстро. Взгляните на страницу функции для более подробной информации. Страница Codeplex находится здесь: http://metanumerics.codeplex.com/ .

0
ответ дан 28 November 2019 в 23:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: