gpt4 book ai didi

algorithm - 如何确保 rand() 不会再次选择一组点

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:44:45 25 4
gpt4 key购买 nike

我正在编写一个代码,对一组 4 个数字执行随机扫描。我想扫描 10000 个点(数百万之后)。我刚刚了解了 rand(),所以这里是相关部分:

int numPoints = 10000;
double A,B,C,D;
for (i=0; i<=numPoints1;i++) {

srand ( time(NULL) );
A = rand() % 500 + 100;
B = rand() % 500 + 100;
C = rand() % 100 - 100;
D = rand() % 5 + 2.5;

然后这四个变量被送入函数 (A,B,C,D)。该代码在循环内执行一些检查和计算。

 }

但是,我注意到在输出文件中多次选择了同一组 A、B、C、D。

问:关于如何改善这种情况有什么建议吗?

最佳答案

您应该将对 srand 的调用移出循环。像这样:

srand(time(NULL));
for (i = 0; i <= numPoints1; i++)
{
...
}

实际情况是您在每次迭代时重新初始化随机数生成器。我记得,time 以秒数形式返回时间。所以 time(NULL) 每秒只会改变一次,这意味着您将多次使用相同的种子为随机数播种。

也就是说,这并不能保证一组数字不会重复。但是,它会大大降低重复的可能性。

关于algorithm - 如何确保 rand() 不会再次选择一组点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10232112/

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