-1

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

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

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

4

2 回答 2

3

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

如果你想要一些正态分布的东西,你可以使用像逆变换方法这样的东西。同样,您需要将其居中并修改标准偏差。对其他分布也有类似的转换

于 2013-07-17T13:59:57.947 回答
1

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

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

所以划分它,以获得您想要的范围

double yourRange=(double)randInt/100000;
于 2013-07-17T14:00:54.457 回答