在整个范围内一致生成随机数我需要在指定的间隔内生成随机数,[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 关注
- 595 浏览
添加回答
举报
0/150
提交
取消