gpt4 book ai didi

c - 为什么当我在两台机器上同时用 C 语言运行 rand() 时,我得到了相同的结果?

转载 作者:太空宇宙 更新时间:2023-11-04 05:57:54 26 4
gpt4 key购买 nike

当我在两台不同的机器上同时运行以下代码时,我得到了相同的结果。为什么它们相同,我如何才能使它们不同?

for (int i = 0; i < 10; i++)
{
delay[i] = (rand() % 2000) + 100;
printf("random number: %i\n", delay[i]);
}

我用的时候结果是一样的

 srand(time(NULL));

我的理解是 rand() 使用处理器定时器生成随机数,但我怎样才能摆脱它?

最佳答案

srand() 播种或设置随机数生成器的初始状态。我认为您看到的问题是因为 time() 通常只有 1 秒的分辨率。这两个程序可以在 1 秒内启动,因此它们都获得相同的启动种子。

您可以尝试使用更高分辨率的时钟(可能无法解决问题)或种子的操作系统特定随机源。

关于c - 为什么当我在两台机器上同时用 C 语言运行 rand() 时,我得到了相同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23840516/

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