STL库中的正态分布函数

在设计抽奖一类程序中,有时会需要一种概率“有较大可能获得一个普通结果,有较小可能获得一个糟糕或极好的结果”,这就可以用正态分布函数来获得这样一个结果。

STL中已经提供了一系列随机分布的函数,包括正态分布,泊松分布等

头文件: random

函数: std::normal_distribution<type> distribution( σ,μ )

其中σ为正态分布的平均数学期望,也就是正态曲线中高峰的x值,μ值越大曲线坡度约缓,反之则越陡,在x轴上, (0,σ * μ) 占据了曲线的大部分空间,(-∞,0] 以及 [σ * μ,+∞)可以认为是数学上的不可能事件。

    /*
     With normal distribution, we can create events like "has a great chance
     to get medium result, and has a little chance to get bad or too good result"
    */
    std::default_random_engine generator;
    std::normal_distribution<double> distribution(5.0,2.0);
    generator.seed(clock()); // std pesudo also needs seed to avoid generating fixed random value.

    double number = distribution(generator);

需要注意,std::default_random_engine 也需要像以前的rand()一样,使用前用srand(seed)设定一个不同的种子,否则每次结果都是一样的

 

转载于:https://www.cnblogs.com/medivh-tang/p/4873415.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值