十行代码一重循环实现C++在指定范围内生成指定数量的不重复随机数

在[a,b]中生成n个不重复的随机数

可以使用srand()来设置rand()产生随机数时的随机数种子,设置不同的种子可以获取不同的随机数序列。

可以利用srand((int)(time(NULL))的方法,利用系统时钟,产生不同的随机数种子。需要调用time(),所以要加入头文件< ctime >。(这里用了万能头文件)

#include
using namespace std;
int main()
{
     
    srand((int)time(0));
    int arr[100]= {
     0};
    int i=0,t=0,n=0,a=0,b=0;
    cin>>n>>a>>b;
    while(t<n)
    {
     
        i=rand()%(b-a+1) +a;
        if(arr[i]==0)
        {
     
            arr[i]=1;
            cout<<i<<" ";
            t++;
        }
    }
}


你可能感兴趣的:(算法设计与分析)