C++中生成的相同随机数

Wil*_*iam 0 c c++ random

我现在已经半个小时撞到了这个头,并且不知道出了什么问题.我正在尝试生成一个包含10个随机数的列表,1-100.但是当我运行它们时,它们都会出现相同的数字.这非常令人沮丧!我认为这是因为数字仍然存储在RAM中,但在将随机数和变量重新随机化三次后,它仍然会出现相同的数字.我究竟做错了什么?

码:

main() {
    int i;
    int randnum;
    srand(time(NULL));
    randnum = rand() % 2;
    for (i = 0; i < 10; i++) {
        srand(time(NULL));
        randnum = rand() % 100 + 1;
        srand(time(NULL));
        rand();
        list[i] = randnum;
        srand(time(NULL));
        randnum = rand() % 100 + 1;
        srand(time(NULL));
        rand();
    }
    srand(time(NULL));
    randnum = rand() % 100 + 1;
}
Run Code Online (Sandbox Code Playgroud)

Cro*_*man 7

不要srand()多次打电话.这段代码可能需要不到一秒的时间来执行,所以每当你srand(time(NULL))在实现时以秒为单位调用时间时,你只需将伪随机数生成器重置为相同的种子,所以你的所有数字都是相同的.