【发布时间】:2015-09-25 06:00:29
【问题描述】:
我想在同一次传递中生成多个均匀分布的随机数。 到目前为止,我有一个用于生成随机数的“标准”函数
double generateRandomNumber()
{
srand((unsigned)time(NULL));
double r=((double)rand()/(double)RAND_MAX);
return r;
}
我怎么在 main 中这样称呼它:
# include <iostream>
# include <string>
# include <cmath>
# include <ctime>
int main()
{
// generate random number
double rr1=generateRandomNumber();
double rr2=generateRandomNumber();
cout << rr1 << endl;
cout << rr2 << endl;
return 0;
}
我知道这两个数字是相同的(我猜这是秒的时间限制),无论如何,这是我想将其概括为多个随机数。
谁能提出更好的方法?也许使用不同的方法或库?
【问题讨论】:
-
@AnastasiyaAsadullayeva,干杯,我去看看
-
这里有数百个问答(例如this),解释了应该如何调用一次
srand()(通常在main()内部),因为它重置了随机数序列并使用相同的种子将在其中的同一点重新启动。