博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(五)boost库之随机数random
阅读量:6231 次
发布时间:2019-06-21

本文共 1450 字,大约阅读时间需要 4 分钟。

(五)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 
#include 
#include 
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
real(1, 5);
std::cout << real(gen) << std::endl;
}
 
{
//0-1上的实数
boost::uniform_01
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;
}

 

转载地址:http://kvtna.baihongyu.com/

你可能感兴趣的文章
ubuntu VNC连接树莓派
查看>>
[nodemon] Internal watch failed: watch ENOSPC错误解决办法
查看>>
全球首发----Tech·Ed 2006中国 实况报道。全程跟踪。(四)
查看>>
向C#的选项卡中添加自定义窗体
查看>>
WPF客户端读取高清图片很卡,缩略图解决方案
查看>>
ubuntu安装和配置SVN【转】
查看>>
通过串口连接控制树莓派
查看>>
线程池系列三:ThreadPoolExecutor讲解
查看>>
wp7 XAML基础
查看>>
机器这次击败人之后,争论一直没平息 | SQuAD风云
查看>>
Oracle中shrink space命令详解
查看>>
验证码 生成变形的文字
查看>>
用cflow工具生成代码函数调用关系【转】
查看>>
ASP.NET MVC5+EF6+EasyUI 后台管理系统(75)-微信公众平台开发-用户管理
查看>>
android用户界面之菜单(Menu)教程实例汇总
查看>>
单链表
查看>>
linux下的僵尸进程处理SIGCHLD信号【转】
查看>>
c#中volatile关键字的作用
查看>>
Hadoop概念学习系列之搭建(windows)Eclipse/MyEclipse远程操作(Linux上)hadoop2.2.0/hadoop2.6.0 出错集(三十五)...
查看>>
淘米水的10大功效
查看>>