《C++笔记》 C++ 11 中的随机数

本文介绍了C++11中的随机数生成器,包括default_random_engine、uniform_int_distribution、uniform_real_distribution和bernoulli_distribution。default_random_engine用于生成随机种子,uniform_int_distribution和uniform_real_distribution分别用于生成指定范围的整数和实数随机数,而bernoulli_distribution则用于生成基于特定概率的随机布尔值。通过实例展示了这些工具的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++11 中的随机数
default_random_engine:随机非负数(不建议单独使用);
uniform_int_distribution:指定范围的随机非负数;
uniform_real_distribution:指定范围的随机实数;
bernoulli_distribution:指定概率的随机布尔值。

#include <random>
using std::default_random_engine;
using std::uniform_int_distribution;
using std::uniform_real_distribution;
using std::bernoulli_distribution;

用法: 使用default_random_engine返回一个种子,用这个种子随机化后三个随机数生成器

//default_random_engine 是一个随机数引擎类。它定义的调用运算符返回一个
//随机的unsigned 类型的值。
default_random_engine e;
//uniform_int_distribution是一个随机数分布类,也是个模板类,模板参数
//为生成随机数的类型(不过只能是 int、unsigned、short、unsigned short、
//long、unsigned long、long long、unsigned long long 中的一种)。它的
//构造函数接受两个值,表示随机数的分布范围(闭区间)。
uniform_int_distribution<unsigned> u(0, 9);
ret = u(e);
//uniform_real_distribution 是一个随机数分布类,它也是模板类,参数表
//示随机数类型(可选类型为 float、double、long double)。构造函数也需
//要最大值和最小值作为参数。
uniform_real_distribution<double> u(0.0, 1.0);

//bernoulli_distribution 是一个分布类,但它不是模板类。它的构造函数
//只有一个参数,表示该类返回 true 的概率,该参数默认为 0.5 ,即
//返回 true 和 false 的概率相等。
bernoulli_distribution u;

参考 https://cplusplus.com/reference/random/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值