【发布时间】:2018-01-27 00:18:01
【问题描述】:
我正在创建一个程序,在该程序中我需要在不同的时间输出不同的东西。它是随机的,但总是输出相同的东西,是的,我放入了 srand。
void setcolor()
{
srand(time(NULL));
int col = rand() % 4 + 1;
if (col == 1)
{ cout << "white "; }
else if (col == 2)
{ cout << "brown "; }
else if (col == 3)
{ cout << "black "; }
else if (col == 4)
{ cout << "spotted "; }
}
int main()
{
for (int i = 0; i <= 5; ++i)
{
setcolor();
}
}
【问题讨论】:
-
srand()应该在程序启动时只调用一次。 -
@alain 为什么我只需要调用一次?
-
在我链接的问题中有很好而彻底的答案。
-
简而言之,人们主要期望 rng 的两个属性:1)它产生一个伪随机序列 2)对于相同的种子,你得到相同的数字序列。后者对于能够重现结果很重要
标签: c++