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