随机数生成器c ++

use*_*720 -3 c++ random

好吧,我对c ++很新,我试图让随机数生成器工作.一般的想法是每次循环调用随机生成器并将随机数放入数组.它基本上有效,唯一的问题是数量不是随机的.每次打印出来的时间都是-842150451,这是一个问题.

int main()
{
    int *array;
    int size;
    cout << "Enter size of array: ";
    cin >> size;
    array = new int[size];
    for (int x = 0; x < size; x++)
    {
        srand ( time(NULL) );
        int randomNumber;
        randomNumber = rand() % 10000 + 1;
        randomNumber >> array[x];
Run Code Online (Sandbox Code Playgroud)

它是更大的排序算法的一部分,所以我不打扰复制整个事情,因为这是问题的一部分.

fpw*_*fpw 8

srand在循环之前调用.它根据当前时间初始化生成器 - 如果循环足够快,您将在每次迭代中使用相同的种子初始化它,因此没有真正的随机性.一次初始化就足够了.

@ ThomasPadron-McCarthy在你的问题的一条评论中指出了另一个问题:你正在尝试使用这个值进入数组

randomNumber >> array[x];
Run Code Online (Sandbox Code Playgroud)

如果你没有重载那个操作符,那么它是一个移位操作,它将改变随机数,但不会将它存储到数组中.用它来存储它:

array[x] = randomNumber;
Run Code Online (Sandbox Code Playgroud)