Возьмем следующую программу:
#include <cstdlib>
using std::rand;
#include <iostream>
using std::cout;
int main()
{
cout << rand() << ' ' << rand() << ' ' << rand() << '\n';
}
Из-за того, что rand
производит те же самые значения, пока seed не изменяется с помощью srand
, это должно дать три одинаковых числа.
например.
567 567 567
Однако, когда я запускаю эту программу, она дает мне три разных значения.
например.
6334 18467 41
Когда программа (компилируется и)запускается снова, генерируются те же три числа. Разве я не должен использовать srand
для изменения начального числа, прежде чем я начну получать другие результаты от rand
? Это просто мой компилятор/реализация пытается сделать мне одолжение?
ОС:Windows XP
Компилятор :GCC 4.6.2
Библиотеки:MinGW
РЕДАКТИРОВАТЬ:Пытаясь использовать srand
, я обнаружил, что это результат начального числа 1 (, которое, как я полагаю, установлено по умолчанию).