gpt4 book ai didi

c - rand() 给出的值彼此非常接近

转载 作者:行者123 更新时间:2023-11-30 19:52:57 25 4
gpt4 key购买 nike

我在 Mac OS X 10.7.3 上使用 GCC 4.2。一切都运行良好,直到我更新它。我完全不知道为什么它不再起作用。

问题如下:

rand() 给我返回的值非常接近,但不相等。因此,在多次运行该程序后,我得到了类似的答案。

输出:

(double)rand()/(double)RAND_MAX.

0.945264,
0.945295,
0.945335

(随着时间的推移,差异会变得更大。)我使用 srand(time(NULL)); 来播种它,直到一个小时前我更新它时它都运行良好。我现在已经测试了 20 次,所有的输出都是大约。同样,这当然不是随机的。有任何想法吗?编辑

#include <stdlib.h> 
main()
{
srand(time(NULL));
printf("%f",(double)rand()/(double)RAND_MAX);
}

(这是我的全部代码,抱歉我的格式很糟糕。)

最佳答案

这可能是另一种可能性:

我认为这是您的 srand 的位置

当我发布此内容

#include <stdlib.h> 
#include <time.h>
#include <stdio.h>
main()
{
int i;
for(i=0;i<4;i++){
srand(time(NULL));
printf("%f\n",(double)rand()/(double)RAND_MAX);
}
return(0);
}

我得到这个结果

0.314774
0.314774
0.314774
0.314774

但是当我将 srand 移出循环时,我会得到不同的随机数

#include <stdlib.h> 
#include <time.h>
#include <stdio.h>
main()
{
int i;
srand(time(NULL));
for(i=0;i<4;i++){
printf("%f\n",(double)rand()/(double)RAND_MAX);
}
return(0);
}

我得到了这些结果

0.154158
0.832643
0.529257
0.529633

关于c - rand() 给出的值彼此非常接近,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9847031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com