我需要创建一个数字生成器,在特定的时间间隔内绘制具有Pareto分布的数字。我在C ++工作。
我不能使用C ++ 11的CBAdvertisementDataServiceUUIDsKey
库,所以我试图通过使用boost库找到类pareto_distribution来解决我的问题。
关于这个主题还有另一个问题,但他们提出的解决方案对我不起作用。
任何人都可以帮助我吗?
提前谢谢。答案 0 :(得分:0)
这是我写的剧本:
#include <iostream>
#include <boost/random/uniform_real_distribution.hpp>
#include <boost/random/mersenne_twister.hpp>
#include <boost/random/variate_generator.hpp>
#include <boost/math/distributions/pareto.hpp>
#include <time.h>
using namespace std;
int main()
{
boost::mt19937 *rg = new boost::mt19937();
rg->seed(time(NULL));
boost::math::pareto_distribution<> dist;
boost::random::uniform_real_distribution<> uniformReal(1.0,10.0);
boost::variate_generator<boost::mt19937&,boost::random::uniform_real_distribution<> > generator(rg, dist);
double cdfComplement;
cdfComplement = boost::math::complement::cdf(boost::math::complement(dist,generator()));
cout << " cdfComplement: " << cdfComplement << endl;
return 0;
}