gpt4 book ai didi

C 如何防止随机变量重复相同的数字

转载 作者:太空宇宙 更新时间:2023-11-04 00:44:28 25 4
gpt4 key购买 nike

所以我刚刚学习 C,我想知道如何防止使用 rand() 函数随机化的变量重复相同的数字。我有一个脚本,它简单地随机化并在 for 循环中打印变量 4 次。我怎样才能使变量在每次使用 rand() 函数后都不会获得相同的数字?

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

最佳答案

在大多数机器上,int 是 32 位。因此,在 232 次迭代之后,您肯定会得到一些重复(而且可能早很多)。

如果您将自己限制在更少的循环中,请考虑例如保留以前遇到的随机数数组(或一些哈希表,或一些二叉树,或其他一些容器)。

对于只重复 4 次的循环,保留一个(最多 4-1)个先前发出的数字的数组非常简单,并且足够高效。

另请阅读 pigeonhole principle .

关于C 如何防止随机变量重复相同的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48590853/

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