srand

srand

srand函式是隨機數發生器的初始化函式。原型:void srand(unsigned int seed);srand和rand()配合使用產生偽隨機數序列。

基本介紹

函式用法,使用舉例,

函式用法

rand函式在產生隨機數前,需要系統提供的生成偽隨機數序列的種子,rand根據這個種子的值產生一系列隨機數。如果系統提供的種子沒有變化,每次調用rand函式生成的偽隨機數序列都是一樣的。srand(unsigned seed)通過參數seed改變系統提供的種子值,從而可以使得每次調用rand函式生成的偽隨機數序列不同,從而實現真正意義上的“隨機”。通常可以利用系統時間來改變系統的種子值,即srand(time(NULL)),可以為rand函式提供不同的種子值,進而產生不同的隨機數序列

使用舉例

隨機輸出十個0-100之間的整數
例1(C語言)
#include<stdlib.h>/*用到了srand函式,所以要有這個頭檔案*/#include<stdio.h>#define MAX 10int main(void){int number[MAX] = {0};int i;unsigned int seed;scanf("%d",&seed);/*手動輸入種子*/srand(seed);for(i = 0; i < MAX; i++){number[i] = (rand() % 100);/*產生100以內的隨機整數*/printf("%d\n",number[i]);}printf("\n");return 0;}
例2(C語言)
#include<stdlib.h>#include<stdio.h>#include<time.h>/*用到了time函式,所以要有這個頭檔案*/#define MAX 10int main(void){int number[MAX] = {0};int i;srand((unsigned)time(NULL));/*播種子*/for(i = 0; i < MAX; i++){number[i] = (rand() % 100);/*產生100以內的隨機整數*/printf("%d\n",number[i]);}printf("\n");return 0;}
例3(C++)
#include<iostream>#include<ctime>#include<cstdlib>using namespace std;double random(double,double);int main(){srand( unsigned( time(0) ) );//srand(time(NULL));for(int j = 0; j < 10; j++)cout << "No." << j+1 << ":" << int(random(0,10)) << endl;return 0;}double random(double start,double end){return start + (end - start) * rand() / (RAND_MAX + 1.0);}//從此處採取點斜式子,將返回值範圍限定至0-9//的整數,倘若要生成10,(RAND_MAX+1.0)改成(RAND_MAX)/*運行結果*No.1:3*No.2:9*No.3:0*No.4:9*No.5:5*No.6:6*No.7:9*No.8:2*No.9:9*No.10:6*/

相關詞條

熱門詞條

聯絡我們