【发布时间】:2011-07-12 17:18:31
【问题描述】:
我不明白为什么 srand() 在运行之间生成如此相似的随机数!
我正在尝试运行以下代码
srand ( time(NULL) );
int x = rand();
cout << x << endl;
但是,我总是得到几乎相同的数字,而不是一个合适的随机数,随着时间的推移,这个数字增长缓慢。所以我得到如下数字:11669、11685、11701、11714、11731。
我做错了什么?
我正在使用 Visual Studio 2010 SP1。
好的,srand() 真的那么简单吗?我的意思是有人怎么会称它为随机函数?
srand(1) => rand() = 41
srand(2) => rand() = 45
srand(3) => rand() = 48
srand(4) => rand() = 51
....
【问题讨论】:
-
每次拨打
rand()时你都在播种吗?只需播种一次! -
你用当前时间初始化,想知道为什么它会慢慢增加?
-
我到处读到它是在 C++ 应用程序中初始化 srand 的正确方法。我每个 main() 只做一次。
-
从字里行间看,我猜你的程序只产生一个数字,而你正在多次运行它——对吗?
-
是的,
srand使用类似的种子启动它时产生类似的结果是完全正常的。
标签: c++ visual-studio visual-studio-2010 random