十行代碼一重循環實現C++在指定範圍內生成指定數量的不重複隨機數

在[a,b]中生成n個不重複的隨機數

可以使用srand()來設置rand()產生隨機數時的隨機數種子,設置不同的種子可以獲取不同的隨機數序列。

可以利用srand((int)(time(NULL))的方法,利用系統時鐘,產生不同的隨機數種子。需要調用time(),所以要加入頭文件< ctime >。(這裏用了萬能頭文件)

#include<bits/stdc++.h>
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++;
        }
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章