Генерация случайных чисел — обычное требование в программировании, и C++ предоставляет несколько методов генерации случайных чисел. В этой статье блога мы углубимся в различные методы и примеры кода для генерации случайных чисел в C++. Так что хватайте свою шляпу программиста и отправляйтесь в путешествие, раскрывающее случайность!
- Использование функций srand() и time():
Функция srand() в C++ используется для заполнения генератора случайных чисел. Передавая функцию time() в качестве начального числа, мы можем гарантировать, что генерируемые случайные числа будут разными при каждом запуске программы. Вот пример:
#include <iostream>
#include <cstdlib>
#include <ctime>
int main() {
srand(time(NULL));
// Generate a random number between 1 and 100
int randomNumber = rand() % 100 + 1;
std::cout << "Random number: " << randomNumber << std::endl;
return 0;
}
- Использование случайного заголовка.
В C++11 появился заголовок<random>
, который обеспечивает более гибкий и современный подход к генерации случайных чисел. Вот пример использования заголовка<random>
:
#include <iostream>
#include <random>
int main() {
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(1, 100);
int randomNumber = dis(gen);
std::cout << "Random number: " << randomNumber << std::endl;
return 0;
}
- Использование заголовка
и функции rand():
До C++11 заголовок<ctime>
и функция rand() обычно использовались для генерации случайных чисел. Вот пример:
#include <iostream>
#include <ctime>
int main() {
std::srand(std::time(nullptr));
int randomNumber = std::rand() % 100 + 1;
std::cout << "Random number: " << randomNumber << std::endl;
return 0;
}
- Использование заголовков
и :
C++11 также представил заголовок<chrono>
, который предоставляет утилиты для измерения времени. Вот пример объединения заголовков<chrono>
и<random>
:
#include <iostream>
#include <chrono>
#include <random>
int main() {
unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
std::default_random_engine generator(seed);
std::uniform_int_distribution<int> distribution(1, 100);
int randomNumber = distribution(generator);
std::cout << "Random number: " << randomNumber << std::endl;
return 0;
}
В этой статье блога мы рассмотрели различные методы генерации случайных чисел в C++. Мы начали с традиционных функций srand() и time(), затем перешли к современному заголовку <random>
, а также затронули старый заголовок