создать случайное число из пуассона используя MersenneTwister

Привет, у меня есть симуляция, в которой я работаю, в которой я легко получаю случайные числа из равномерного и нормального распределений:

#include <iostream>
#include "MersenneTwister.h"using namespace std;
int main()
{
MTRand mtrand1;
double r1,r2;
r1 = mtrand.rand(); // from a uninform dist.
r2 = mtrand1.randNorm(); //from a normal dist.
}

Я хотел бы использовать этот генератор случайных чисел для получения случайного числа из распределения Пуассона со средним значением «A».

Любая идея о том, как реализовать эту процедуру, используя код MersseneTwister?
код можно найти здесь:
https://gcc.gnu.org/bugzilla/attachment.cgi?id=11960. и это широко используется.

-1

Решение

Вы можете использовать стандартную библиотеку

#include<random>

double mean = 3.1415926;
std::mt19937 mt{std::random_device{}()};
std::poisson_distribution<> pd{mean};

auto n = pd(mt);  // get a number

Обратите внимание, что посев с std::random_device является вряд ли будет удовлетворительным.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]