gpt4 book ai didi

c++ - 随机数总是产生 1 个数

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:04:59 29 4
gpt4 key购买 nike

//Generate Food Personality
for(i=0; i<food.size(); i++)
{
srand(time(0));
int randomFood = rand() % 6;

if(randomFood == 1 || randomFood == 3 || randomFood == 5)
{
badFood.push_back(food[randomFood]);
}
else if(randomFood == 0 || randomFood == 2 || randomFood == 4)
{
goodFood.push_back(food[randomFood]);
}
}
cout << "Size of Food Vector: " << food.size() << endl;
cout << "Size of Bad Food: " << badFood.size() << endl;
cout << "Size of Good Food " << goodFood.size() << endl;

randomFood 是一个从 6 到 6 的随机数,它将 food[] 中的随机数添加到一个 vector ,取决于随机数的结果。

我的问题是它似乎总是生成奇数或偶数。 bad 和 good.size() 总是打印出 6 或 0,而不是其他任何东西。

最佳答案

在循环开始时调用 srand(time(0)); 每次循环都会重置随机数生成器。因此,您每次都会获得相同的初始随机数。

(从技术上讲,time(0) 可以在 for 循环的迭代之间返回不同的值,但考虑到当今处理器的速度,这种情况很少见对于您提供的代码。)

在任何情况下,您都应该在for 循环之前调用srand(或者,更好的是,只在您的循环开始时调用一次)程序的 main 例程。)

关于c++ - 随机数总是产生 1 个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3866628/

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