如何使用0到N之间的数字填充数组而不重复

时间:2017-07-27 12:23:13

标签: c++ random

如何获取0到10 ^ 9的随机数(不重复)并将它们存储在数组中。

首先,我不确定如何声明一个大小为10 ^ 9的数组(我能够声明一个大小为10 ^ 8的数组)。 其次,我不知道如何存储没有重复的随机数。

到目前为止,这是我的代码:

#include<bits/stdc++.h>
using namespace std;

#define S 100000000
int main()
{
    int i;
    std::vector<int>result(S);

    for( i = 1; i < S ; ++i)
    {
        int t = rand() % i; // t - is random value in [0..i)
        result[i] = result[t]; // i-th element assigned random index-th value
        result[t]  =i;        // and, random position assigned i value

    }

}

我如何实现目标?

0 个答案:

没有答案