В C++ существует несколько способов генерации случайных чисел, от устаревших функций до современных библиотек. Рассмотрим интересные подходы, которые помогут тебе гибко генерировать случайные данные:
1. Старый способ: rand() и srand() — функция
rand()
генерирует псевдослучайные числа, и её начальное состояние можно задавать через srand()
:#include <cstdlib>
#include <ctime>
srand(time(0));
int random_number = rand() % 100; // Число от 0 до 99
// Простое решение, но с низкой статистической случайностью
2. Использование std::random_device — генерирует более надежные случайные числа, используя аппаратный генератор (если доступен):
#include <random>
std::random_device rd;
// Генерирует 32-битное случайное число
int random_number = rd();
// Подходит для криптографии, но может быть медленным
3. Настраиваемое распределение — генератор
mt19937
(Mersenne Twister) и распределения позволяют контролировать диапазон и тип случайных чисел:#include <random>
std::mt19937 gen(std::random_device{}());
std::uniform_int_distribution<> dist(1, 10);
int random_number = dist(gen); // Число от 1 до 10
// Гибкий и современный способ генерации чисел