如何高效的生成指定区间的随机数
生成[a,b]区间上的随机数,a>0,a,b为整数命中率要非常高
谢谢
//我现在一个还有两分,但还是麻烦大家帮帮忙
#include <random> #include <iostream> int main() { std::random_device rd; //Will be used to obtain a seed for the random number engine std::mt19937 gen(rd()); //Standard mersenne_twister_engine seeded with rd() std::uniform_int_distribution<> dis(1, 6); for (int n=0; n<10; ++n) //Use dis to transform the random unsigned int generated by gen into an int in [1, 6] std::cout << dis(gen) << ' '; std::cout << '\n'; }就是上图中的 std::uniform_int_distribution<> dis(1, 6)
#include <random> #include <algorithm> #include <iterator> #include <iostream> int main() { std::vector<int> v = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; std::random_device rd; std::mt19937 g(rd()); std::shuffle(v.begin(), v.end(), g); std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " ")); std::cout << "\n"; }可能的输出