在整个范围内一致生成随机数
我需要在指定的间隔内生成随机数,[max;min]。
另外,随机数应该均匀地分布在区间上,而不是位于特定的点上。
目前,我正在以下列方式产生:
for(int i=0; i<6; i++){ DWORD random = rand()%(max-min+1) + min;}
从我的测试中,随机数只产生在一个点左右。
Examplemin = 3604607;max = 7654607;
产生的随机数:
3631594
3609293
3630000
3628441
3636376
3621404
从下面得到的答案:好的,RANDMAX是32767。我在C+Windows平台上。还有其他方法来生成均匀分布的随机数吗?
函数式编程
相关分类