use*_*006 0 c++ random c++11 c++14
我知道我可以这样使用std::discrete_distribution:
std::default_random_engine generator;
std::discrete_distribution<int> distribution {2,2,1,1,2,2,1,1,2,2};
int p[10]={};
for (int i=0; i<100; ++i) {
int number = distribution(generator);
++p[number];
}
Run Code Online (Sandbox Code Playgroud)
但是,这将根据指定的重量生成0-9范围内的数字.
如何在用户指定的范围内生成数字,例如24-33或95-104等但仍然使用discrete_distribution中指定的分布,我该怎么办?