31 lines
830 B
C++
31 lines
830 B
C++
|
#include <boost/random.hpp>
|
|||
|
#include <ctime>
|
|||
|
|
|||
|
using namespace boost;
|
|||
|
|
|||
|
double SampleNormal (double mean, double sigma)
|
|||
|
{
|
|||
|
// выбор генератора случайных чисел
|
|||
|
mt19937 rng;
|
|||
|
|
|||
|
// инициализация генератора числом секунд с 1970 года
|
|||
|
rng.seed(static_cast<unsigned> (std::time(0)));
|
|||
|
|
|||
|
// выбор нужного распределения
|
|||
|
normal_distribution<double> norm_dist(mean, sigma);
|
|||
|
|
|||
|
// привязка генератора к распределению
|
|||
|
variate_generator<mt19937&, normal_distribution<double> > normal_sampler(rng, norm_dist);
|
|||
|
|
|||
|
// пример работы
|
|||
|
for(int i=0; i<10; i++)
|
|||
|
std::cout<<normal_sampler()<<std::endl;
|
|||
|
return normal_sampler();
|
|||
|
}
|
|||
|
|
|||
|
int main()
|
|||
|
{
|
|||
|
SampleNormal(5,1);
|
|||
|
return 0;
|
|||
|
}
|