#include #include #include #include "rtnorm.hpp" #include #include #include #include //--génération quantiles-- std::vector quantile_norm(int n, double sigma){ std::vector q(n); for (int i=0; i q; q = quantile_norm(n, sigma); std::pair p; p = rtnorm (gen, q[i], q[i+1], mu, sigma); return p.first; } std::pair mean_var( std::vector r){ std::pair p; for(auto &x: r){ p.first += x; p.second += x*x; } p.first /= r.size(); p.second /= r.size(); p.second -= p.first * p.first; return p; } //actualisation du nombre de tirages à faire par strates std::vector update_sampling (std::vector p, std::vector sigma, int n) { int I = p.size(); std::vector M(I, 1); // notre vecteur final à retourner std::vector m(I, 0); //le vecteur des m_i idéals if (sigma.empty()) { for (int i=0; i q; q = quantile_norm(10, 1); std::pair p; std::pair mv; //number of classes int I = 10; //number of samples int N = 10000; std::vector r(N); double a; for (int i=0; i k; std::vector z = {(double)1/3,(double)1/3,(double)1/3}; std::vector sigma = {0.1, 0.4, 0.3}; k = update_sampling(z, sigma, 10000); for (int j=0; j