参加以下计划:
#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来改变种子吗?这只是我的编译器/实现试图帮我一个忙吗?
操作系统:Windows XP
编译:GCC 4.6.2
图书馆:MinGW
编辑:
通过尝试使用srand,我发现这是种子1的结果(我猜是默认的).