C++ boost libiary 关于随机数的应用
一 在一个整数范围内, 以相同的概率获取随机数.
#include <boost/random/mersenne_twister.hpp> #include <boost/random/uniform_int_distribution.hpp>
boost::random::mt19937 gen;
boost::random::uniform_int_distribution<> dist(1, 6);
int roll_die() {return dist(gen); }int main(){//如果没有对gen进行seed操作,每次获取的值是相同的.//gen.seed(time(0));for(int i = 0; i < 10; i++){cout << roll_die();}}
2. 在一个整数范围内, 以不相同的概率获取随机数
#include <boost/random/mersenne_twister.hpp>
#include<boost/random/discrete_distribution.hpp>
boost::random::mt19937 gen;
double probabilities[] = { 0.5, 0.1, 0.1, 0.1, 0.1, 0.1 }; boost::random::discrete_distribution<> dist(probabilities);
int roll_weighted_die() { return dist(gen); }
提供一个概率列表数组,从而得到一个不同概率的随机数(0 N-1)