当试图在两个浮点之间随机化时,rand()函数不起作用

rand() function wont work when trying to randomizes between two floats

本文关键字:不起作用 随机化 之间 rand 函数 两个      更新时间:2024-04-29

所以我必须在两个正浮点和两个负浮点之间随机化,负浮点为[-.010,-0.001],正浮点为[0.05,0.10]。我似乎不知道如何做到这一点,因为我不能像往常一样使用%运算符。这就是我当前的代码:

float randNeg =  rand() % (10.0/-1000.0 + 1.0/-1000.0 - 1) + (1.0/-1000.0);
float randPos =  rand() % (1.0 / 10.0 + 5.0 / 100.0 - 1) + (5.0 / 100.0);

如有任何帮助,我们将不胜感激!

rand()返回一个介于0和RAND_MAX(包括0和RAND_MAX(之间的整数,因此您可以使用以下方法完全映射它:

float randFloat(float minVal, float maxVal)
{
return rand() / (float)RAND_MAX*(maxVal - minVal) + minVal;
}

但你真的应该好好想想你到底想用这个做什么。注意一般的rand()函数,它是原始的,而且几乎不是随机的。试图将其用于加密货币或其他敏感内容会狠狠地咬你一口。