gpt4 book ai didi

c - 随机数生成器不工作

转载 作者:行者123 更新时间:2023-12-01 13:04:54 25 4
gpt4 key购买 nike

我使用这个函数来创建介于 100000000 和 999999999 之间的随机数

int irand(int start, int stop) {
double range = stop - start + 1;
return start + (int)(range * rand()/(RAND_MAX+1.0));
}

当我这样使用它时,它可以正常工作

while(1) {
DWORD dw = irand(100000000, 999999999);
printf("dynamic key: %d\n", dw);
Sleep(100);
}

但是当我在没有 while(1) 的情况下使用这个函数时,我总是得到相同的数字。我需要修复什么?

最佳答案

随机数生成器必须使用一些熵源作为种子,以便您每次看到不同的序列,否则 rand 使用初始种子值 1功能。在您的情况下,在首次调用 irand 函数之前调用一次 srand (time(NULL)); 应该可以解决问题。您可能会发现这个问题很有用:why do i always get the same sequence of random numbers with rand() ?

关于c - 随机数生成器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3793430/

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