C++,二十个数字不是随机的吗? 为什么我的C++数字不是随机的?< /P> #include <iostream> #include <cstdlib> using namespace std; int main() { int randomNumber = rand() % 100; for (randomNumber = 0; randomNumber < 20; randomNumber++) { cout << randomNumber << endl; } return 0; } //Why are my 20 numbers not random?
您正在为randomNumber指定一个随机值,然后在for循环中用数字0到19覆盖它。在循环之前,您有一个随机数。您需要在srand中使用时间函数作为种子,然后使用randC++,二十个数字不是随机的吗? 为什么我的C++数字不是随机的?< /P> #include <iostream> #include <cstdlib> using namespace std; int main() { int randomNumber = rand() % 100; for (randomNumber = 0; randomNumber < 20; randomNumber++) { cout << randomNumber << endl; } return 0; } //Why are my 20 numbers not random?,c++,random,C++,Random,您正在为randomNumber指定一个随机值,然后在for循环中用数字0到19覆盖它。在循环之前,您有一个随机数。您需要在srand中使用时间函数作为种子,然后使用rand srand(time(NULL)); 顺便说一句,如果不打印rand结果,请在srand调用后使用: for (int i= 0; i < 20; i++) { int randomNumber = rand() % 100; cout << randomNumber <<
srand(time(NULL));
顺便说一句,如果不打印rand结果,请在srand调用后使用:
for (int i= 0; i < 20; i++)
{
int randomNumber = rand() % 100;
cout << randomNumber << endl;
}
每次你想要一个随机数时,你都需要给兰德打电话。现在,你要生成一个随机数,然后增加它并打印20次,这样你就可以得到20个连续的数字 试试像这样的东西
srand(time(NULL)); // Seeding the random number generator
for(int i=0; i<20; ++i)
{
cout << (rand() % 100) << endl;
}
随机数生成器的种子设定很重要,否则每次运行程序时都会生成相同的数字
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
for (int i = 0; i < 20; i++)
{
int randomnumber = rand() % 100;
cout << randomNumber << endl;
}
return 0;
}
另外,我希望这是一个笑话:你需要为你的随机数生成器正确地设置种子,然后你需要反复调用兰德来获得一个新的随机数 例如:
srand(time(NULL));
for (int randomNumber = 0; randomNumber < 20; randomNumber++)
{
cout << (rand() % 100) << endl;
}
请注意,通常不建议简单地使用模来获得所需范围内的随机数。这可能是另一个SO问题的主题,但。。。其论点是,使用模量的结果不是均匀分布的。这里有两个参考文献:和