Полный 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). Таким образом генерируются действительно различные — случайные числа.

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий