C語言中rand()函數的用法

1、rand()ide

rand()函數用來產生隨機數,可是,rand()的內部實現是用線性同餘法實現的,是僞隨機數,因爲週期較長,所以在必定範圍內能夠當作是隨機的。函數

rand()會返回一個範圍在0到RAND_MAX(至少是32767)之間的僞隨機數(整數)。.net

在調用rand()函數以前,可使用srand()函數設置隨機數種子,若是沒有設置隨機數種子,rand()函數在調用時,自動設計隨機數種子爲1。隨機種子相同,每次產生的隨機數也會相同。設計

rand()函數須要的頭文件是:<stdlib.h>code

rand()函數原型:int rand(void);
使用rand()函數產生1-100之內的隨機整數:int number1 = rand() % 100+1;blog

2、srand()get

srand()函數須要的頭文件仍然是:<stdlib.h>原型

srand()函數原型:void srand (usigned int seed);it

srand()用來設置rand()產生隨機數時的隨機數種子。參數seed是整數,一般能夠利用time(0)或getpid(0)的返回值做爲seed。class

使用rand()和srand()產生1-100之內的隨機整數:

    srand(time(NULL));
    int number1 = rand() % 100+1;

3、使用rand()和srand()產生指定範圍內的隨機整數的方法

「模除+加法」的方法

由於,對於任意數,0<=rand()%(n-m+1)<=n-m

所以,0+m<=rand()%(n-m+1)+m<=n-m+m

所以,如要產生[m,n]範圍內的隨機數num,可用:

int num=rand()%(n-m+1)+m;

其中的rand()%(n-m+1)+m算是一個公式,記錄一下方便之後查閱。

好比產生10~30的隨機整數:

srand(time(NULL));
int a = rand() % (21)+10;

做者:chikey
來源:CSDN
原文:https://blog.csdn.net/chikey/article/details/66970397 版權聲明:本文爲博主原創文章,轉載請附上博文連接!

相關文章
相關標籤/搜索