1. 程式人生 > >rand 與random的區別(轉)

rand 與random的區別(轉)

int rand(void); //返回一個隨機數0 ~ pow(2, sizeof(int))-1
long int random(void); //返回一個隨機數0 ~ pow(2, sizeof(long int))-1

void srand(unsigned int seed); //設定rand函式的種子
void srandom(unsigned int seed); //設定random函式的種子

總結:
rand和random的區別就是返回型別不同,int和long int(雖然在普通的32位機上效果是一樣的)
使用的rand或者random之前,一般使用time(0) getpid()設定隨機種子.否則預設種子就是1,則每次產生的隨機數都是一樣的


ps:
使用rand或者random生成重複隨機數的概率如下:
10萬 -----3個
100萬-----230個
1000萬----23000個
由此可見,重複率隨著數量增加出現的概率變得越來越快.