嗨我有一个模拟运动,我可以轻松地从均匀和正态分布中得到随机数:
#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。它被广泛使用。
答案 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。