隨機數的產生


本文內容來源於網絡。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 *);  返回從197011000秒到如今的秒數.循環

    爲了保證隨機性,咱們通常以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; //生成201-100間的隨機數

    return 0;

}

相關文章
相關標籤/搜索