Numerics

作者: 龙遁流 | 来源:发表于2017-02-09 23:05 被阅读0次

    随机数和概率分布<random>

    重要概念

    1,引擎,能够产生随机的根据最大最小值均匀分布的无符号值的函数对象,随机数生成器

    default_random_engine dre1;//默认的初始化的引擎产生的数是定义好了的,不是随机的

    default_random_engine dre2(seed);//随机的

    2,分布,引擎产生的随机值按某种分布产生最后的随机数;线性、正态、指数、伽马、伯努利等分布

    uniform_int_distribution<int> d(10,20);//产生整数基于范围为[10,20]的均匀分布,不指定范围则为[0,numeric_limits<type>::max()]

    uniform_real_distribution<double> dd;//产生浮点数,默认范围为[0.0,1.0)

    dd(dre);//产生随机数

    shuffle (v.begin(), v.end(), dre);//将容器某范围的值随机交换

    引擎是状态相关的,即如果引擎状态相同则产生的随机数是相同的,为此可以设置特定的不可预测的操作来获取不同的状态,从而产生不可预测的随机数;可预测的随机数可以用来做测试集。

    随机引擎产生的随机值不是随机数,需通过分布和随机值共同产生随机数

    default_random_engine引擎在不同平台下可能产生不同的随机序列值

    特定的随机引擎

    分布的参数传递

    uniform_int_distribution<> d(0, 20); // initialize parameters ‘‘a’’ and ‘‘b’’

    d.a() // yields value of parameter ‘‘a’’

    d.b() // yields value of parameter ‘‘b’’

    d.param().a() // yields value of parameter ‘‘a’’

    d.param().b() // yields value of parameter ‘‘b’’

    或者将参数作为一个整体传递

    uniform_int_distribution<>::param_type pt(100, 200); // other parametrization

    d(e,pt) // generates one value according to parametrization pt

    d.param(pt); // let all generated values use parametrization pt

    复数

    <complex>

    使用cin输入复数时

    1,只输入实部可以不加()

    2,输入完整的复数(real,imaginary)

    使用cout输出复数时

    输出(real,imaginary)

    数值函数

    相关文章

      网友评论

          本文标题:Numerics

          本文链接:https://www.haomeiwen.com/subject/klkbittx.html