C++11 新特性之随机数库

std::cout<<"test normal distribution:\n";e.seed(time(0));std::normal_distribution<> n(4, 1.5);std::vector<unsigned> vals(9);for(size_t i = 0; i < 250; i++){unsigned v = lround(n(e));if(v < vals.size()) vals[v]++;}for(size_t i = 0; i < vals.size(); i++){std::cout<<i<<": "<<std::string(vals[i], '*')<<std::endl;}std::cout<<"test normal distribution done.\n"<<std::endl;

伯努利分布也是经常会使用到的:

std::cout<<"test bernoulli distribution:\n";e.seed(time(0));std::bernoulli_distribution b(0.7);std::vector<unsigned> bers(2);for(size_t i = 0; i < 200; i++){if(b(e)) bers[1]++;else bers[0]++;}std::cout<<"True: "<<bers[1]<<std::endl;std::cout<<"False: "