(五)boost库之随机数random
boost库为我们提供了许多的日常随机数生成器:
1.uniform_smallint:在小整数域内的均匀分布
2.uniform_int:在整数域上的均匀分布
3.uniform_01:在区间[0,1]上的实数连续均匀分布
4.uniform_real:在区间[min,max]上的实数连续均匀分布
5.bernoulli_distribution:伯努利分布
6.binomial_distribution:二项分布
7.cauchy_distribution:柯西(洛伦兹)分布
8.gamma_distribution:伽马分布
9.poisson_distribution:泊松分布
10.geometric_distribution:几何分布
11.triangle_distribution:三角分布
12.exponential_distribution:指数分布
13.normal_distribution:正态分布
14.lognormal_distribution:对数正态分布
15.uniform_on_sphere:球面均匀分布
随机数生成包括两部分,一是随机数种子,二是生成器,对于随机数种子,使用boost::random::mt19937就够用了
#include <iostream>
#include <boost/random.hpp>
#include <boost/random/random_device.hpp>
boost::random::mt19937 gen;
int _tmain(int argc, _TCHAR* argv[])
{
{
//整数
boost::uniform_int<> real(1, 999);
std::cout << real(gen) << std::endl;
}
{
//实数
boost::uniform_real<double> real(1, 5);
std::cout << real(gen) << std::endl;
}
{
//0-1上的实数
boost::uniform_01<boost::mt19937&> u01(gen);
//正态分布,参数分别为均值、方差
boost::normal_distribution<> nd(0, 1);
std::cout << nd(u01) << std::endl;
}
boost::random::uniform_int_distribution<> dist(1, 1000);
std::cout << dist(gen) << std::endl;
std::cout << dist(gen) << std::endl;
std::string chars(
"abcdefghijklmnopqrstuvwxyz"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"1234567890"
"!@#$%^&*()"
"`~-_=+[{]{\\|;:'\",<.>/? ");
boost::random::random_device rng;
boost::random::uniform_int_distribution<> index_dist(0, chars.size() - 1);
for(int i = 0; i < 8; ++i) {
std::cout << chars[index_dist(rng)];
}
return 0;
}
(五)boost库之随机数random相关推荐
- C++ Boost库:简介和第一个示例程序
文章目录 1. 简介 2. Boost库开发环境搭建 3. 一个简单的示例程序 4. hpp文件简介 C++ Boost库:简介和第一个示例程序 C++ Boost库:数值转换 lexical_cas ...
- C++ Boost库:数值转换 lexical_cast
文章目录 1. C/C++数值转换函数 2. boost数值转换lexical_cast C++ Boost库:简介和第一个示例程序 C++ Boost库:数值转换 lexical_cast C++ ...
- C++ Boost库:日期时间库 date_time
文章目录 1. 简介 2. 基本使用 3. date_period类 4. ptime类 5. time_period类 C++ Boost库:简介和第一个示例程序 C++ Boost库:数值转换 l ...
- C++ Boost库:windows下编译Boost库
文章目录 1. 需要编译的boost库 2. 编译步骤 3. 库命名规则 4. VS配置库目录 C++ Boost库:简介和第一个示例程序 C++ Boost库:数值转换 lexical_cast C ...
- boost库随机数使用详解
1.随机数发生器:产生随机数.boost提供了30多个随机数发生器,比较常用的:rand48.mt19937.lagged_fibonacci19937,示例中使用mt19937随机数发生器: 2.随 ...
- c库的rand/random随机数产生函数性能差?
有网文称c标准库的rand/random随机数产生函数性能极差.一直信以为真,但从没做过验证.最近因其他因缘,写了些代码专门验证rand/random的性能.结果大出意料,颠覆之前的成见. 结论如下: ...
- python random库下载_Python---random库(随机数)
原博文 2020-04-10 22:36 − 使用random库:import random -基本随机数函数:seed().random() -扩展随机数函数:randint().getrandbi ...
- C++11产生随机数,random库产生随机数
c++自带rand()产生随机数 srand()设置随机数种子,rand()产生0-RANMAX之间的随机整数,通过自己设计变换可以转换成其他分布的随机数 #include<iostream&g ...
- python标准库生成随机数_Python3标准库:random伪随机数生成器
1. random伪随机数生成器 random模块基于Mersenne Twister算法提供了一个快速伪随机数生成器.原来开发这个生成器是为了向蒙特卡洛模拟生成输入,Mersenne Twister ...
最新文章
- 为了进行差错控制,必须对传送的数据帧进行校验。在局域网中广泛使用的校验方法是循环冗余校验。当接收端发现错误后采取的措施是
- 全网最经典26道Spring面试题总结,终获offer
- [20181015]为什么是3秒.txt
- Oracle 在Sqlplus 执行sql脚本文件。
- BugkuCTF-Misc:隐写2
- 只看不说-CCTV的客户端关键字
- QScrollArea不能显示滚动条
- A-Frame WEB VR框架初体验
- php spss,spss新手入门
- 高通qcc芯片天梯图_芯片性能天梯榜“爆冷”,骁龙888无法撼动麒麟9000的王位...
- arduino怎么和C语言程序通信,c – 如何将arduino库与标准C代码一起使用
- EasyUI基础入门之Parser(解析器)
- 华为机顶盒视频播放代码
- 指针式万用表测量电容
- 云计算零基础(八) 破解密码
- 微信公众平台开发-access_token获取及应用(含源码)
- 图像检索基于BOF(Bag-Of-Features Models)
- 《奋斗》中徐志森的生意经
- c语言 派生,继承和派生
- 专线宽带和家庭宽带有什么区别呢?网络专线有哪些?
热门文章
- Java语言特性运用:各种Java语法特性是怎样被Spring各种版本巧妙运用的?
- 基本的SQL-SELECT语句练习
- Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
- android10如何设置打开方式,Android启动方式
- arduino编译失败_Arduino编译时失败
- IDEA同时使用maven和gradle
- Spring @Import源码解析
- python程序文件扩展名有_python程序文件的扩展名称是什么
- 干货|Spring Cloud Bus 消息总线介绍
- AWS Amplify Console:赋予应用程序快速部署的能力