Полный rand.. Получаем действительно случайные числа на С++

Как вы наверное уже знаете, для получения случайного числа в С++ предусмотрена функция rand(), но она возвращает не совсем "случайные" числа...
Для использования функции rand() необходимо подключить библиотеку stdlib:

#include <cstdlib>

Попробуйте откомпилировать программу:

#include <iostream>
#include <cstdlib>
using namespace std;

int main() {
    cout << rand()%100 << endl;
    return 0;
}

По идее она должна возвращать случайные числа, но при многократном запуске будет выведено одно и тоже число.
Для устранения этой проблемы можно воспользоваться функцией srand(). Она устанавливает исходное число для последовательности, генерируемой функцией rand().
Вот пример использования srand:

#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
    srand(time(0));
    cout << rand()%100 << endl;
    return 0;
}

В качестве параметра srand в нашем примере получает время прошедшее с начала эпохи Unix - time(0). Таким образом генерируются действительно различные - случайные числа.

Просмотров:   1799