Advanced random number generation utilities with multiple distributions.
- Uniform integer distribution
- Uniform real distribution
- Normal (Gaussian) distribution
- Binomial distribution
- Bernoulli distribution
- Poisson distribution
- Automatic seed initialization
- Thread-safe usage patterns
- Modern C++ implementation
Random()- Constructor with time-based seed initializationint RandomInt(int min_a, int max_a)- Uniform integer in range [min, max]double RandomDouble(double min_a, double max_a)- Uniform real in range [min, max]double NormalDouble(double mean_a, double stddev_a)- Normal distributionint BinomialInt(int t_a, double p_a)- Binomial distributionbool BernoulliBool(double p_a)- Bernoulli trialint PoissonInt(double mean_a)- Poisson distribution
#include <CUtils/Random.hpp>
int main()
{
CUtils::Random rng_;
// Basic random numbers
int dice_ = rng_.RandomInt(1, 6);
double percent_ = rng_.RandomDouble(0.0, 100.0);
// Statistical distributions
double height_ = rng_.NormalDouble(175.0, 10.0); // Mean=175, SD=10
bool success_ = rng_.BernoulliBool(0.3); // 30% success chance
int events_ = rng_.PoissonInt(5.0); // Mean events=5
int damage_ = rng_.BinomialInt(10, 0.8); // 10 trials, 80% success
return 0;
}Продвинутые утилиты генерации случайных чисел с различными распределениями.
- Равномерное распределение целых чисел
- Равномерное распределение вещественных чисел
- Нормальное (Гауссово) распределение
- Биномиальное распределение
- Распределение Бернулли
- Распределение Пуассона
- Автоматическая инициализация сида
- Потокобезопасные шаблоны использования
- Современная реализация на базе
Random()- Конструктор с инициализацией сида по времениint RandomInt(int min_a, int max_a)- Целое число в диапазоне [min, max]double RandomDouble(double min_a, double max_a)- Вещественное число в [min, max]double NormalDouble(double mean_a, double stddev_a)- Нормальное распределениеint BinomialInt(int t_a, double p_a)- Биномиальное распределениеbool BernoulliBool(double p_a)- Испытание Бернуллиint PoissonInt(double mean_a)- Распределение Пуассона
#include <CUtils/Random.hpp>
int main()
{
CUtils::Random rng_;
// Основные случайные числа
int dice_ = rng_.RandomInt(1, 6);
double percent_ = rng_.RandomDouble(0.0, 100.0);
// Статистические распределения
double height_ = rng_.NormalDouble(175.0, 10.0); // Mean=175, SD=10
bool success_ = rng_.BernoulliBool(0.3); // 30% success chance
int events_ = rng_.PoissonInt(5.0); // Mean events=5
int damage_ = rng_.BinomialInt(10, 0.8); // 10 trials, 80% success
return 0;
}