16 października 2012

Boost.Random

Boost.Random na szybko:
* Wybieramy jeden z generatorów pseudolosowych oferowanych przez bibliotekę (linia 9).
* Inicjujemy go seed-em (linia 12).
* Wybieramy rozkład zmiennej losowej (w naszym przypadku jednorodny), wybieramy też przedział, z którego będą wybierane liczby (obustronnie domknięty od 1 do 6) (linia 13).
* Łączymy generator z rozkładem w postaci naszego obiektu (kostka) (linia 16).
#include <iostream>

#include <boost/random/mersenne_twister.hpp>
#include <boost/random/uniform_int.hpp>
#include <boost/random/variate_generator.hpp>

int main()
{
    typedef boost::mt19937 TBaseGeneratorType;

    const int seed = 1337;
    TBaseGeneratorType generator(seed);
    boost::uniform_int<> uni_dist(1, 6);

    typedef boost::variate_generator<TBaseGeneratorType, boost::uniform_int<> > TVar;
    TVar die(generator, uni_dist);

    std::cout << "Na kostce wypadło: " << die() << std::endl;

    return 0;
}
Wynik:
Na kostce wypadło: 2

Brak komentarzy:

Prześlij komentarz