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

Сообщение об ошибке

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls в функции menu_set_active_trail() (строка 2405 в файле /home/ih139182/public_html/includes/menu.inc).

Как вы наверное уже знаете, для получения случайного числа в С++ предусмотрена функция 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). Таким образом генерируются действительно различные - случайные числа.

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