如何在RAND功能中获得更小的比例

时间:2013-07-17 13:53:41

标签: c++ c

我使用此代码创建0到1之间的随机数。

randnumber = (double)((double)rand() / (double)RAND_MAX);

这行代码经常给我0.650434,0.302340和0.906789等数字,这对我来说是个大数字。问题是我需要像这些数字那样的较小范围数:0.000200,0.000100,0.000400,0.000600等。 如何修改这行代码以获得我的结果?

2 个答案:

答案 0 :(得分:3)

您知道您正在寻找什么样的概率分布函数吗?如果你仍然需要统一,你可以简单地将[0,1]结果除以一个大数并应用一个移位,使它以你想要的值为中心。

如果你想要正常分布的东西,你可以使用逆变换method之类的东西。同样,您需要将其居中并修改标准偏差。其他发行版也有类似的转换

答案 1 :(得分:1)

这给出1到100之间的随机数

int randInt= (rand()%100)+1;

所以除以它,以获得你想要的范围

double yourRange=(double)randInt/100000;