c++ 11 random库的简单用法
2017-11-18 16:55
204 查看
c++11相比之前可以说成为了一个全新的语言,新加的许多标准库都使平常的开发变得更加高效,今天主要谈谈random库的常见用法。
2.随机数分布类是一个需要于随机数引擎类的支持才能运行的类,但是它能根据用户的需求利用随机数引擎生成符合条件的随机数,例如某一区间、某一分布概率的随机数。
随机数类常用的主要有以下四个:
下面是这四个类的基本使用方法:
uniform_int_distribution是一个随机数分布类,也是个模板类,模板参数为生成随机数的类型(不过只能是 int、unsigned、short、unsigned
short、long、unsigned long、long long、unsigned long long 中的一种)。它的构造函数接受两个值,表示随机数的分布范围(闭区间)。
float、double、long double)。构造函数也需要最大值和最小值作为参数。
true 的概率,该参数默认为 0.5 ,即返回 true 和 false 的概率相等。
以上就是random库的基本用法,更多请内容请参考:http://www.cplusplus.com/reference/random/
random库的组件主要有随机数引擎和随机数分布引擎。
1.随机数引擎类是可以独立运行的随机数发生器,它以均匀的概率生成某一类型的随机数,但无法指定随机数的范围、概率等信息。因此,它也被称为“原始随机数发生器”,由于不能指定生成随机数的范围,它通常不会被单独使用。2.随机数分布类是一个需要于随机数引擎类的支持才能运行的类,但是它能根据用户的需求利用随机数引擎生成符合条件的随机数,例如某一区间、某一分布概率的随机数。
随机数类常用的主要有以下四个:
default_random_engine:随机非负数(不建议单独使用);
uniform_int_distribution:指定范围的随机非负数;
uniform_real_distribution:指定范围的随机实数;
bernoulli_distribution:指定概率的随机布尔值。
下面是这四个类的基本使用方法:
default_random_engine是一个随机数引擎类。它定义的调用运算符返回一个随机的
unsigned类型的值。
#include <iostream> #include <random> using namespace std; int main( ){ default_random_engine e; for(int i=0; i<10; ++i) cout<<e( )<<endl; return 0; }
uniform_int_distribution是一个随机数分布类,也是个模板类,模板参数为生成随机数的类型(不过只能是 int、unsigned、short、unsigned
short、long、unsigned long、long long、unsigned long long 中的一种)。它的构造函数接受两个值,表示随机数的分布范围(闭区间)。
#include <iostream> #include <random> using namespace std; int main( ){ default_random_engine e; uniform_int_distribution<unsigned> u(0, 9); for(int i=0; i<10; ++i) cout<<u(e)<<endl; return 0; }
uniform_real_distribution是一个随机数分布类,它也是模板类,参数表示随机数类型(可选类型为
float、double、long double)。构造函数也需要最大值和最小值作为参数。
#include <iostream> #include <random> using namespace std; int main( ){ default_random_engine e; uniform_real_distribution<double> u(0.0, 1.0); for(int i=0; i<10; ++i) cout<<u(e)<<endl; return 0; }
bernoulli_distribution是一个分布类,但它不是模板类。它的构造函数只有一个参数,表示该类返回
true 的概率,该参数默认为 0.5 ,即返回 true 和 false 的概率相等。
#include <iostream> #include <random> using namespace std; int main( ){ default_random_engine e; bernoulli_distribution u; for(int i=0; i<10; ++i) cout<<u(e)<<endl; return 0; }
以上就是random库的基本用法,更多请内容请参考:http://www.cplusplus.com/reference/random/
相关文章推荐
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 11 编写简单的消息发布器和订阅器 (C++)
- C和C++中static用法简单总结
- C++开源矩阵计算工具——Eigen的简单用法(一)
- c++ 11中emplace_back替代push_back的相关知识点,含右值引用,move用法等
- 实例讲解C++中CopyFileEx函数的简单用法
- C++复习(1):类的简单介绍及C语言中函数用法的扩充
- Eigen: C++开源矩阵计算工具——Eigen的简单用法
- C++ pair,map,vector简单用法
- Eigen: C++开源矩阵计算工具——Eigen的简单用法
- Eigen: C++开源矩阵计算工具——Eigen的简单用法
- C++----zlib 简单的用法
- [G+smo]C++开源矩阵计算工具——Eigen的简单用法
- C++开源矩阵计算工具——Eigen的简单用法(二)
- Eigen: C++开源矩阵计算工具——Eigen的简单用法
- c++ 11 数组 和lambda表达式 语法 / 函数包装器 基本用法
- C++ double转string类型以及MFC控件简单用法
- C++标准 bind函数用法与C#简单实现
- C++ Eigen的简单用法
- C++中的堆栈stack的简单用法
- C++:const用法的简单总结