3 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個贊
getRand();可以不加,但srand(time(NULL));必須加,以初始化隨機(jī)數(shù)種子。否則,每次rand()函數(shù)都會生成相同的隨機(jī)數(shù)序列。

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個贊
float getRand()
{
return rand() / (RAND_MAX+1.0);
}
方法是隨機(jī)獲取[0,0.1)的隨機(jī)數(shù)

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個贊
getRand()函數(shù)其實(shí)就是給rand()函數(shù)加了一個殼,把生成的隨機(jī)數(shù)換算為一個真小數(shù)。
rand()函數(shù)在使用之前要先通過srand()函數(shù)來變更隨機(jī)數(shù)種子,否則每次調(diào)用rand()函數(shù)都使用同一個種子、生成同一個隨機(jī)數(shù)。
所以getRand()函數(shù)可以改為:
float getRand()
{
srand(time(0)); // 用當(dāng)前時間作為隨機(jī)數(shù)種子
return rand()/(RAND_MAX+1.0);
}
- 3 回答
- 0 關(guān)注
- 126 瀏覽
添加回答
舉報