我使用此代码创建0到1之间的随机数。
randnumber = (double)((double)rand() / (double)RAND_MAX);
这行代码经常给我0.650434,0.302340和0.906789等数字,这对我来说是个大数字。问题是我需要像这些数字那样的较小范围数:0.000200,0.000100,0.000400,0.000600等。 如何修改这行代码以获得我的结果?
答案 0 :(得分:3)
您知道您正在寻找什么样的概率分布函数吗?如果你仍然需要统一,你可以简单地将[0,1]结果除以一个大数并应用一个移位,使它以你想要的值为中心。
如果你想要正常分布的东西,你可以使用逆变换method之类的东西。同样,您需要将其居中并修改标准偏差。其他发行版也有类似的转换
答案 1 :(得分:1)
这给出1到100之间的随机数
int randInt= (rand()%100)+1;
所以除以它,以获得你想要的范围
double yourRange=(double)randInt/100000;