突然遇到了隨機函數(shù)的問題,那出來和大家分享一下 :
srand():用此函數(shù)來獲取隨機數(shù)的種子,rand()來獲取隨機數(shù);
rand和srand的用法
首先我們要對rand&srand有個總體的看法:srand初始化隨機種子,rand產(chǎn)生隨機數(shù),下面將詳細說明。
rand(產(chǎn)生隨機數(shù))
表頭文件 : #include
定義函數(shù) : int rand(void)
函數(shù)說明 :
因為rand的內(nèi)部實現(xiàn)是用線性同余法做的,他不是真的隨機數(shù),只不過是因為其周期特別長,所以有一定的范圍里可看成是隨機的,rand()會返回一隨機數(shù)值,范圍在0至RAND_MAX間。
在調(diào)用此函數(shù)產(chǎn)生隨機數(shù)前,必須先利用srand()設(shè)好隨機數(shù)種子,如果未設(shè)隨機數(shù)種子,rand()在調(diào)用時會自動設(shè)隨機數(shù)種子為1.
rand ()產(chǎn)生的是假隨機數(shù)字,每次執(zhí)行時是相同的。
若要不同,以不同的值來初始化它.初始化的函數(shù)就是srand()。
返回值:
返回0至RAND_MAX之間的隨機整數(shù)值,RAND_MAX的范圍最少是在32767之間(int),即雙字節(jié)(16位數(shù))。若用unsigned int 雙字節(jié)是65535,四字節(jié)是4294967295的整數(shù)范圍。
0~RAND_MAX每個數(shù)字被選中的機率是相同的。
srand函數(shù)是隨機數(shù)發(fā)生器的初始化函數(shù),原型:
void srand(unsigned seed);
建議用下面的方法初始化(獲得隨機數(shù)種子)
srand( (unsigned)time( NULL ) );
下面是我寫的一個程序,希望多多指教:
#include
#include
#include

