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相关推荐

  1. C++ Boost库:简介和第一个示例程序

    文章目录 1. 简介 2. Boost库开发环境搭建 3. 一个简单的示例程序 4. hpp文件简介 C++ Boost库:简介和第一个示例程序 C++ Boost库:数值转换 lexical_cas ...

  2. C++ Boost库:数值转换 lexical_cast

    文章目录 1. C/C++数值转换函数 2. boost数值转换lexical_cast C++ Boost库:简介和第一个示例程序 C++ Boost库:数值转换 lexical_cast C++ ...

  3. C++ Boost库:日期时间库 date_time

    文章目录 1. 简介 2. 基本使用 3. date_period类 4. ptime类 5. time_period类 C++ Boost库:简介和第一个示例程序 C++ Boost库:数值转换 l ...

  4. C++ Boost库:windows下编译Boost库

    文章目录 1. 需要编译的boost库 2. 编译步骤 3. 库命名规则 4. VS配置库目录 C++ Boost库:简介和第一个示例程序 C++ Boost库:数值转换 lexical_cast C ...

  5. boost库随机数使用详解

    1.随机数发生器:产生随机数.boost提供了30多个随机数发生器,比较常用的:rand48.mt19937.lagged_fibonacci19937,示例中使用mt19937随机数发生器: 2.随 ...

  6. c库的rand/random随机数产生函数性能差?

    有网文称c标准库的rand/random随机数产生函数性能极差.一直信以为真,但从没做过验证.最近因其他因缘,写了些代码专门验证rand/random的性能.结果大出意料,颠覆之前的成见. 结论如下: ...

  7. python random库下载_Python---random库(随机数)

    原博文 2020-04-10 22:36 − 使用random库:import random -基本随机数函数:seed().random() -扩展随机数函数:randint().getrandbi ...

  8. C++11产生随机数,random库产生随机数

    c++自带rand()产生随机数 srand()设置随机数种子,rand()产生0-RANMAX之间的随机整数,通过自己设计变换可以转换成其他分布的随机数 #include<iostream&g ...

  9. python标准库生成随机数_Python3标准库:random伪随机数生成器

    1. random伪随机数生成器 random模块基于Mersenne Twister算法提供了一个快速伪随机数生成器.原来开发这个生成器是为了向蒙特卡洛模拟生成输入,Mersenne Twister ...

最新文章

  1. 为了进行差错控制,必须对传送的数据帧进行校验。在局域网中广泛使用的校验方法是循环冗余校验。当接收端发现错误后采取的措施是
  2. 全网最经典26道Spring面试题总结,终获offer
  3. [20181015]为什么是3秒.txt
  4. Oracle 在Sqlplus 执行sql脚本文件。
  5. BugkuCTF-Misc:隐写2
  6. 只看不说-CCTV的客户端关键字
  7. QScrollArea不能显示滚动条
  8. A-Frame WEB VR框架初体验
  9. php spss,spss新手入门
  10. 高通qcc芯片天梯图_芯片性能天梯榜“爆冷”,骁龙888无法撼动麒麟9000的王位...
  11. arduino怎么和C语言程序通信,c – 如何将arduino库与标准C代码一起使用
  12. EasyUI基础入门之Parser(解析器)
  13. 华为机顶盒视频播放代码
  14. 指针式万用表测量电容
  15. 云计算零基础(八) 破解密码
  16. 微信公众平台开发-access_token获取及应用(含源码)
  17. 图像检索基于BOF(Bag-Of-Features Models)
  18. 《奋斗》中徐志森的生意经
  19. c语言 派生,继承和派生
  20. 专线宽带和家庭宽带有什么区别呢?网络专线有哪些?

热门文章

  1. Java语言特性运用:各种Java语法特性是怎样被Spring各种版本巧妙运用的?
  2. 基本的SQL-SELECT语句练习
  3. Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
  4. android10如何设置打开方式,Android启动方式
  5. arduino编译失败_Arduino编译时失败
  6. IDEA同时使用maven和gradle
  7. Spring @Import源码解析
  8. python程序文件扩展名有_python程序文件的扩展名称是什么
  9. 干货|Spring Cloud Bus 消息总线介绍
  10. AWS Amplify Console:赋予应用程序快速部署的能力