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