码迷,mamicode.com
首页 > 其他好文 > 详细

STL库中的正态分布函数

时间:2015-10-13 09:11:27      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:

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

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)设定一个不同的种子,否则每次结果都是一样的

 

STL库中的正态分布函数

标签:

原文地址:http://www.cnblogs.com/medivh-tang/p/4873415.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!