你如何创建一个产生1到2,500万的随机数的函数?
我考虑过使用rand()
,但我认为最大数量RAND_MAX
= 32000(约会)是对的吗?
有没有解决方法,这种方法不会降低选择非常低数字的概率,也不会增加选择高/中数的可能性?
编辑:@Jamey D的方法完全独立于Qt。
答案 0 :(得分: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);
答案 1 :(得分:1)
看看ran3
http://www.codeforge.com/read/33054/ran3.cpp__html
你应该能够从中得到你想要的东西。
Ran3(至少当我还在进行计算建模时)比rand()更快,分布更均匀,尽管那是几年前的事。它返回一个随机整数值。
例如,从上面的链接获取源代码:
int main() {
srand(time(null));
int randomNumber = ran3(rand()) % 25000000;
int nextRandomNumber = ran3(randomNumber);
}