采取以下程序:
#include <cstdlib>
using std::rand;
#include <iostream>
using std::cout;
int main()
{
cout << rand() << ' ' << rand() << ' ' << rand() << '\n';
}
由于rand
只要不使用 更改种子就产生相同的值srand
,这应该产生三个相同的数字。
例如
567 567 567
然而,当我运行这个程序时,它给了我三个不同的值。
例如
6334 18467 41
当程序再次(编译并)运行时,会生成相同的三个数字。srand
在我开始得到不同的结果之前,我不应该使用改变种子rand
吗?这只是我的编译器/实现试图帮我一个忙吗?
操作系统:Windows XP
编译器:GCC 4.6.2
库:MinGW
编辑:通过尝试使用srand
,我发现这是种子 1 的结果(我猜这是默认值)。