在整個范圍內一致生成隨機數我需要在指定的間隔內生成隨機數,[max;min]。另外,隨機數應該均勻地分布在區間上,而不是位于特定的點上。目前,我正在以下列方式產生:for(int i=0; i<6; i++){
DWORD random = rand()%(max-min+1) + min;}從我的測試中,隨機數只產生在一個點左右。Examplemin = 3604607;max = 7654607;產生的隨機數:363159436092933630000362844136363763621404從下面得到的答案:好的,RANDMAX是32767。我在C+Windows平臺上。還有其他方法來生成均勻分布的隨機數嗎?
3 回答

函數式編程
TA貢獻1807條經驗 獲得超9個贊
rand()
((double) rand() / (RAND_MAX+1)) * (max-min+1) + min
注
- 3 回答
- 0 關注
- 626 瀏覽
添加回答
舉報
0/150
提交
取消