随机数引擎和分布

17.28 编写函数,每次调用生成并返回一个均匀分布的随机unsigned int。

#include<iostream>
#include<vector>
#include<random>
#include<ctime>
using namespace std;

int main()
{
    uniform_int_distribution<unsigned> u;
    default_random_engine e();
    for(size_t i=0;i<10;++i)
        cout<<u(e)<<" ";
    cout<<endl;
    for(size_t i=0;i<10;++i)
        cout<<u(e)<<" ";
    cout<<endl;
}

17.29 允许用户提供一个种子作为可选参数。

 17_29.cpp
#include<iostream>
#include<vector>
#include<random>
#include<ctime>
using namespace std;

int main()
{
    uniform_int_distribution<unsigned> u;
    default_random_engine e(time(0));
    for(size_t i=0;i<10;++i)
        cout<<u(e)<<" ";
    cout<<endl;
    for(size_t i=0;i<10;++i)
        cout<<u(e)<<" ";
    cout<<endl;
}

17.30 此次增加两个参数,表示函数允许返回的最小值和最大值

#include<iostream>
#include<vector>
#include<random>
#include<ctime>
using namespace std;

int main()
{
    uniform_int_distribution<unsigned> u(0,9);
    default_random_engine e(time(0));
    for(size_t i=0;i<10;++i)
        cout<<u(e)<<" ";
    cout<<endl;
    for(size_t i=0;i<10;++i)
        cout<<u(e)<<" ";
    cout<<endl;
}
时间: 2024-10-16 07:28:28

随机数引擎和分布的相关文章

C++11 随机数

1 /************************************************************************* 2 > File Name : test_random_device.cc 3 > Author : sanghai 4 > Mail : [email protected] 5 > Created Time: 2017年08月12日 星期六 02时11分04秒 6 ********************************

C++11带来的随机数生成器

C++11带来诸多特性,random就是其一. 1. random_device 标准库提供了一个非确定性随机数生成设备.在Linux的实现中,是读取/dev/urandom设备;Windows的实现居然是用rand_s,在这里强烈谴责一下. random_device提供()操作符,用来返回一个min()到max()之间的一个数字.如果是Linux(Unix Like或者Unix)下,都可以使用这个来产生高质量的随机数,可以理解为真随机数. #include <iostream> #incl

第17章 标准库特殊设施

17.1类型tuple tuple是类是pair的模板.每个pair都不相同,但是都有两个成员.而一个tuple类型会有任意数量的成员.(定义在tuple头文件中) tuple<T1,T2,...,Tn> t; t是一个tuple,成员数位n,第i个成员的类型为Ti.所有成员都进行值初始化 tuple<T1,T2,...,Tn> t(v1,v2,...,vn); t是一个tuple,成员类型为T1,T2,...,Tn,每个成员用对应的初始值vi进行初始化.此构造函数是explici

[C++]封装排序二叉树&amp;随机数生成(c++11)

封装排序二叉树&随机数生成(c++11) 本文,我尝试着把排序二叉树封装为一个模板类,并且用C++11给出的随机数生成函数来对这个类进行测试. 排序二叉树封装 这个二叉树的特征是,左子数的值肯定比父节点小,右子树的值肯定比父节点的大.要求大家按照这个结构特征去构建二叉树,最后中序遍历输出就是我们要求的升序输出. 我们可以根据具体的要求来完成对排序二叉树的构建,可以用一个bool函数来区别不同排序顺序,默认是升序.紧接着用递归来不断地insert新的节点.最后用中序遍历就可以得到我们需要的排序结果

你好,C++(9)坐216路公交车去买3.5元一斤的西红柿——C++中如何表达各种数值数据 3.3 数值数据类型

3.3  数值数据类型 从每天早上睁开眼睛的那一刻开始,我们几乎每时每刻都在与数字打交道:从闹钟上的6点30分,到上班坐的216路公共汽车:从新闻中说的房价跌到了100元每平米到回家买菜时的西红柿3.5元一斤.我们生活在一个充满数字的世界.程序是对现实世界的描述与表达,自然也会有很多数字需要表达.为了做到这一点,C++提供了丰富多样的数值数据类型,从整数到小数.从单精度浮点数到双精度浮点数.从有符号数到无符号数.有了这些数值数据类型,我们就可以定义各种变量来表示现实世界中的各种数字了. 3.3.

(转载)你好,C++(9)坐216路公交车去买3.5元一斤的西红柿——C++中如何表达各种数值数据 3.3 数值数据类型

你好,C++(9)坐216路公交车去买3.5元一斤的西红柿——C++中如何表达各种数值数据 3.3 数值数据类型 3.3  数值数据类型 从每天早上睁开眼睛的那一刻开始,我们几乎每时每刻都在与数字打交道:从闹钟上的6点30分,到上班坐的216路公共汽车:从新闻中说的房价跌到了100元每平米到回家买菜时的西红柿3.5元一斤.我们生活在一个充满数字的世界.程序是对现实世界的描述与表达,自然也会有很多数字需要表达.为了做到这一点,C++提供了丰富多样的数值数据类型,从整数到小数.从单精度浮点数到双精度

C++ 随机数

由随机数分布类.随机数引擎类组成. 现在介绍生成整数与浮点数的随机数. 头文件<random>,使用的随机数引擎类是std::default_random_engine,可通过()调用运算符返回随机数,简单的例子: // main.cpp #include <iostream> #include <random> using std::cout; using std::ends; int main() {     std::default_random_engine e

【C++11】随机数函数库random

1.随机数由生成器和分布器结合产生 生成器generator:能够产生离散的等可能分布数值 分布器distributions: 能够把generator产生的均匀分布值映射到其他常见分布,如均匀分布uniform,正态分布normal,二项分布binomial,泊松分布poisson 2.分布器利用运算符()产生随机数,要传入一个generator对象作为参数 std::default_random_engine generator; std::uniform_int_distribution<

c++11 随机数random

c++11提供的<random>实现了随机数库,它通过随机数引擎类(random_number_engines)产生随机数序列,随机数分布类(random-number distribution)使用随机数引擎生成服从特定概率分布的随机数. 让我们看一个简单的例子: #include <iostream> #include <random> using std::cout; using std::endl; using std::default_random_engin