从poisson dist中创建随机数。使用MersenneTwister

时间:2017-07-05 07:08:05

标签: c++ poisson

嗨我有一个模拟运动,我可以轻松地从均匀和正态分布中得到随机数:

#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&#39;

。”

有关如何使用MersseneTwister代码实现此过程的任何想法? 代码可以在这里找到: https://gcc.gnu.org/bugzilla/attachment.cgi?id=11960。它被广泛使用。

1 个答案:

答案 0 :(得分: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播种的是unlikely to be satisfactory