现代 C++ (C++11 及以上)

#include <random>
#include <iostream>

int main() {
    // 创建随机数引擎
    std::random_device rd;  // 用于获得种子
    std::mt19937 gen(rd()); // 使用梅森旋转算法
    
    // 生成整数范围 [0, 99]
    std::uniform_int_distribution<> dis(0, 99);
    int random_num = dis(gen);
    
    // 生成浮点数范围 [0.0, 1.0)
    std::uniform_real_distribution<> real_dis(0.0, 1.0);
    double random_real = real_dis(gen);
    
    return 0;
}

常见分布类型

// 整数均匀分布 [1, 6] (模拟骰子)
std::uniform_int_distribution<> dice(1, 6);

// 浮点数均匀分布 [0.0, 1.0)
std::uniform_real_distribution<> zero_to_one(0.0, 1.0);

// 正态分布 (均值0, 标准差1)
std::normal_distribution<> normal(0.0, 1.0);

// 布尔值 (伯努利分布,p=0.5)
std::bernoulli_distribution bernoulli(0.5);

 

标签: 随机数, 现代c++

添加新评论