循环中重复的随机数

repeated random numbers in a loop

本文关键字:随机数 循环      更新时间:2023-10-16

可能重复:
循环中的重复随机数

感谢之前的评论,我更新了代码。

首先在主函数中,我调用srand

int main ()
{
//DefineRelationstozero (); //All predecessors are set to -1
srand((unsigned)time(0));
.......
......
......
for (int k=0;k<iterationnumber;k++)
{
.....
RandomKey ();//i call randomkey for every iteration
}...
void RandomKey ()
{

        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;               
....

结果:对于每一次迭代,我在arr[]中都得到了完全相同的数字

可能是Act_num[k]。优先级是int。当您调用:时

(rand()%10000)*0.0001

它会给你从<0.999>。所以,如果Act_num[k].优先级是整数,那么你可以从这个随机数中得到下限。因此,对于所有时间,它都是0