c++ 隨機函式生成。
有時候,我們需要隨機產生乙個在某範圍的隨機數,c++中rand()函式可以用來產生隨機數,但是是屬於偽隨機數。
函式原型:int rand(void);
標頭檔案: #include
返回值:返回乙個[0,rand_max]間的隨機整數。其中rand_max是定義在stdlib.h標頭檔案中的乙個常量32767。
rand()函式不接受引數,預設以1為種子(即起始值)。 隨機數生成器總是以相同的種子開始,所以形成的偽隨機數列也相同,失去了隨機意義。若要不同,此時需要使用函式srand()進行初始化。
函式原型:void srand(unsigned int seed);
srand()函式用來初始化隨機數發生器,引數seed必須是個整數,如果每次seed都設相同值,rand()所產生的隨機數值每次就會一樣。
可以利用srand((unsigned int)(time(null))的方法,產生不同的隨機數種子,因為每一次執行程式的時間是不同的。
給srand()提供乙個種子,它是乙個unsigned int型別;
呼叫rand(),它會根據提供給srand()的種子值返回乙個隨機數(在0到rand_max之間);
根據需要多次呼叫rand(),從而不間斷地得到新的隨機數;
無論什麼時候,都可以給srand()提供乙個新的種子,從而進一步「隨機化」rand()的輸出結果。
0~rand_max之間的隨機數程式:
srand((unsigned)time(null));
for(int i = 0; i < 10;i++ )
cout << rand() << endl;
cout << endl;
產生一定範圍隨機數的通用表示公式:要取得[a,b)的隨機整數,使用(rand() % (b-a))+ a;
要取得[a,b]的隨機整數,使用(rand() % (b-a+1))+ a;
要取得(a,b]的隨機整數,使用(rand() % (b-a))+ a + 1;
通用公式:a + rand() % n;其中的a是起始值,n是整數的範圍。
要取得a到b之間的隨機整數,另一種表示:a + (int)b * rand() / (rand_max + 1)。
要取得0~1之間的浮點數,可以使用rand() / double(rand_max)。
c++新標準,有乙個叫隨機數引擎的東西。
#include < random > //標頭檔案利用隨機函式生成隨機數
給定乙個rand 可以產生從0到rand max的隨機數,其中 rand max 很大 常見值 16位int能表示的最大整數32767 寫出利用rand 生成 a,b 中任意整數的函式,其中a 0,b rand max,且b a 分析 這是在程式設計工作最常見的隨機函式的應用,在這裡做乙個起點再合適...
matlab生成隨機數函式
1.matlab 函式rand 產生在區間 0,1 的均勻隨機數,它是平均分布在 0,1 之間。乙個稱為 seed 的值則是用來控制產生隨機數的次數。均勻隨機數函式的語法為 rand n rand m,n 其結果分別產生一矩陣含n n個隨機數和一矩陣含m n的隨機數。注意每次產生隨機數的值都不會一樣...
PHP函式生成隨機數
通常情況下,當我們要生成乙個隨機字串時,總是先建立乙個字元池,然後用乙個迴圈和mt rand 或rand 生成php隨機數,從字元池中隨機選取字元,最後拼湊出需要的長度,如下 function randomkeys length fckpd 0pound 字元池 key for i 0 i leng...