是我曾經的一些心路筆記,分享給初學者
random函數
最開始瞭解到隨機數函數,是在primer書上看到的random函數,後來才知道,random函數雖然是隨機數,但是,其實它並不是標準函數,以至於在vs,vc上無法編譯通過。
rand函數
於是,這時候,我才瞭解到了一個標準的函數rand,這個函數不需要單獨的頭文件,只需要最常見的<stdlib.h>即可運行,很是方便。
例子:
#include <stdio.h>
#include <stdlib.h>
int main(){
int a = rand();
printf("%d\n",a);
return 0;
}
運行結果我就不列舉了,因為是隨機數值。
srand函數
我第一次瞭解到srand函數,是在一道題裏看到的,當時很好奇這個和rand有什麼區別,後來查詢了資料才知道,rand是“偽隨機”,比如,將上面的例子多次運行,會發現,它的數字不變了,這顯然不是我們期望的。
這是由於rand也是公式推算的,而公式推導的結果類比於正態分佈。
因此,srand函數的作用就來了,通過重新計算,使得隨機數依然不同。
void srand (unsigned int);
隨機數可以有範圍限制
舉個例子:
int a = rand() % 100; //產生0~100的隨機數,注意100會被整除
剛剛這個解釋可能不夠具體,再看下面這個
int a = rand() % 11 + 11;
rand()%11+13這個地方,我們可以看成兩部分:rand()%10是產生 0~10 的隨機數,後面+11保證 a 最小隻能是 11,最大就是 10+11=21
好啦,今天的分享就到這兒了,希望這個博客可以幫助到為這個問題疑惑的同學。