如果我尝试做类似的事情:
srand(time(NULL));
for(int i = 0; i < 10000; i++){
float x = rand() % 1000000000000;
output_file << x << endl;
}
我似乎只得到x的数字小于100000. rand()是否有某种限制,禁止超过这个数量?有没有办法绕过这个(特别是我在上面的代码中尝试rand())?
编辑:刚刚意识到限制是由RAND_MAX设定的。仍在寻找解决方法。
答案 0 :(得分:2)
它不是由RAND_MAX设置的,那就是那里,所以你知道它是什么。 兰特发电机无法调整。
如果你需要一个范围更广的随机数发生器,你将不得不在其他地方找到它。除此之外,boost库还有一个'Random'组件,这可能有用(我没看过)。