使用MersenneTwister从泊松区创建随机数

create random number from a poisson dist. using MersenneTwister

本文关键字:创建 随机数 松区 MersenneTwister 使用      更新时间:2023-10-16

嗨,我正在运行一个模拟,在其中我可以轻松地从均匀和正态分布中获得随机数:

#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。它被广泛使用。

您可以使用标准库

#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播种不太可能令人满意。