本文內容來源於網絡。ios
首先介紹一下要用到的頭文件 : (.h結尾爲C頭文件,無後綴爲C++頭文件) 網絡
stdlib.h / cstdlib : 包含隨機數種子設置,隨機數發生器.函數
time.h / ctime : 包含時間函數spa
首先介紹函數:io
void srand(unsigned seed); 設置隨機數種子爲參數中的seed.stream
int rand(); 返回一個隨機數,在同一個隨機序列下依次返回序列中的每個數.隨機數
time_t time(time_t *); 返回從1970年1月1日0時0分0秒到如今的秒數.循環
爲了保證隨機性,咱們通常以time函數的返回值做爲隨機數種子,這樣能夠保證每次出現的隨機序列是不一樣的.因此一般用程序
srand( (unsigned) time(NULL) );im
來設置隨機數種子.可是time函數是以秒爲單位的,因此在一秒的時間內若是兩次調用srand會使隨機數序列相同,致使輸出相同.因此建議把srand放在全部操做以前,絕對不要放在循環中,不然以計算機的速度會在很短的時間內調用到屢次srand,致使重複序列一直出現.
在設置完隨機數種子以後就能夠在程序中調用rand()來生成隨機數了.若是要生成[a,b]之間的隨機數就用rand() % (b - a + 1) + a來生成.
//隨機數生成示例程序
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand( (unsigned) time(NULL) ); //設置隨機數種子爲當前時間
for(int i = 1; i <= 20; i++)
cout << rand() % 100 + 1 << endl; //生成20個1-100間的隨機數
return 0;
}