C++生成不重復(fù)的隨機(jī)數(shù),供大家參考,具體內(nèi)容如下
林甸網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)成立與2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
給定正整數(shù)的范圍[n,m],生成k個(gè)不重復(fù)的隨機(jī)數(shù)字。
IDE是vs013。
#include "stdafx.h" #include#include #include #include #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) { srand((unsigned)time(NULL)); list
::iterator it;//迭代器 list l;//定義鏈表,保存生成的隨機(jī)數(shù) int begin, end;//數(shù)字范圍 int sum;//隨機(jī)數(shù)個(gè)數(shù) cout << "輸入數(shù)字范圍([n,m]):"; cin >>begin>>end; cout << "輸入隨機(jī)數(shù)個(gè)數(shù):"; cin >> sum; if ( (end<0)||(begin<0)||(begin >end)|| (sum>end))//起始范圍必須大于0,且隨機(jī)數(shù)個(gè)數(shù)小于等于最大數(shù)字范圍 { cout << "范圍錯(cuò)誤"; cout << endl; system("pause"); return 0; } else { while (l.size() < sum) { l.push_back(rand() % (end - begin + 1) + begin); l.sort();//排序 l.unique();//去除相鄰的重復(fù)隨機(jī)數(shù)中的第一個(gè) } cout << "結(jié)果:"; } for (it = l.begin(); it != l.end(); it++) { cout << *it << ' '; } cout << endl; system("pause"); return 0; }
運(yùn)行結(jié)果:
這個(gè)程序可以用于班級(jí)內(nèi)部按照學(xué)號(hào)進(jìn)行隨機(jī)抽簽。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。