需要为每个不同的循环生成0到1之间的随机数.
for ( 1 to 10000)调用RandomKey函数以生成不同的随机数.但问题是每次迭代我得到相同的数字.
RandomKey函数如下:
void RandomKey ()
{
srand((unsigned)time(0));
for (int k=0;k<ActivityNumber;k++)
{
Act_num[k].Priority=(rand()%10000)*0.0001;//random number
}
for (int i=0;i<ActivityNumber;i++)
arr[i]=Act_num[i].Priority;
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
将播种函数call(srand)移出函数调用之外(即,在程序开头,一次).
编辑:进一步思考,如果你的意思是你得到所有的0 arr(如果它说... int),那是因为rand()%10000)*0.0001返回一个介于0和0.0003之间的数字,所以如果你将它们转换为int,你将得到0.
编辑2:没关系,似乎我第一次猜对了:)
| 归档时间: |
|
| 查看次数: |
1148 次 |
| 最近记录: |