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?

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?,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 <<

您正在为randomNumber指定一个随机值,然后在for循环中用数字0到19覆盖它。在循环之前,您有一个随机数。

您需要在srand中使用时间函数作为种子,然后使用rand

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问题的主题,但。。。其论点是,使用模量的结果不是均匀分布的。这里有两个参考文献:和