C++从1到非常大的随机数(例如2500万)

Ala*_*key 6 c++ random largenumber numbers

你如何创建一个产生1到2,500万随机数的函数?

我已经考虑过使用,rand()但我认为最大数量RAND_MAX是正确的= 32000(那里)?

有没有办法绕过这种方式,这种方式不会降低选择非常低数字的概率,也不会增加选择高/中数的概率?

编辑:@Jamey D的方法完全独立于Qt.

Som*_*ken 10

你可以(应该)使用新的C++ 11 std::uniform_real_distribution

#include <random>

std::random_device rd;
std::mt19937 gen(rd());

std::uniform_real_distribution<> distribution(1, 25000000);

//generating a random integer:
double random = distribution(gen);
Run Code Online (Sandbox Code Playgroud)

  • 为什么是real_distribution而不是int_distribution? (2认同)