我有一个程序,在C中,它使用0-999的随机数创建一个1000个整数的数组,然后在该数组上执行某种算法.为了测试算法的运行时间,我尝试运行程序10000次,但每次运行它时,数组对于一些数组是相同的,然后它会改变.我已经使用该srand()函数以当前时间提供种子,但它仍然无济于事.
是否有替代解决方案rand()或解决方法?我的功能是:
void getarray(int *ptr1, int size, int option){
int n;
srand(time(NULL));
for(n=0; n<size; n++)
*(ptr1+n) = *(ptr2+n)= rand()%1000;
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
lrand48() 调用在内部往往有更多的状态和更好的伪随机数分布。
但是,请注意,您仅以 1 秒的粒度重新播种,因此同一秒内的调用将生成相同的序列。把你的srand()电话放在main()或某处,一次,而不是在getarray.
| 归档时间: |
|
| 查看次数: |
3265 次 |
| 最近记录: |