/ / Zeichnungsnummer mit Pareto-Verteilung - c ++, Erhöhung, Zufall, Verteilung

Zeichnungsnummer mit Pareto-Verteilung - C ++, Boost, Zufall, Verteilung

Ich muss einen Zahlengenerator erstellen, der Zahlen mit einer Pareto-Verteilung in einem bestimmten Intervall zeichnet. Ich arbeite in C ++.

Ich kann das nicht benutzen <random> lib von C ++ 11 Also versuchte ich, mein Problem zu lösen, indem ich die Boost-Bibliothek verwendete, in der ich die Klasse pareto_distribution fand.

Es gibt noch eine andere Frage zu diesem Thema, aber die von ihnen vorgeschlagene Lösung funktioniert für mich nicht.

Kann mir jemand helfen ?

Danke im Voraus.

Antworten:

0 für die Antwort № 1

Dies ist das Skript, das ich geschrieben habe:

    #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;
}