0
我需要创建一个数字发生器,绘制具有帕累托分布的数字在特定的时间间隔。我正在使用C++。绘图编号与帕雷托分布
我不能使用C++ 11的<random>
库,所以我试图通过使用boost库来解决我的问题,在那里我找到了类pareto_distribution。
还有关于这个话题的另一个问题,但他们提出的解决方案并不适合我。
任何人都可以帮助我吗?
在此先感谢。
我需要创建一个数字发生器,绘制具有帕累托分布的数字在特定的时间间隔。我正在使用C++。绘图编号与帕雷托分布
我不能使用C++ 11的<random>
库,所以我试图通过使用boost库来解决我的问题,在那里我找到了类pareto_distribution。
还有关于这个话题的另一个问题,但他们提出的解决方案并不适合我。
任何人都可以帮助我吗?
在此先感谢。
这是我写的剧本:
#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;
}
它给了我一个错误在这一行:boost :: variate_generator
向我们展示你做了什么 –
“但他们提出的解决方案并没有为我工作。” - 你甚至没有链接到它。所以没有人应该浪费时间给你答案,因为神秘的原因,这很可能“不适合你”。 – sehe
对不起,你是对的。这是我发现的上一个问题的链接:http://stackoverflow.com/questions/29155783/randomly-generated-numbers-from-boost-pareto-distribution?rq=1。我还附上了我根据该解决方案编写的脚本以及错误。感谢您的建议 –