当前位置:首页 >> 编程开发 >> Visual C++ >> 内容

C++:随机数 正态分布(norm distribution) 详解

时间:2014/11/16 作者:平凡之路 来源:xuhantao.com 浏览:

正态分布(norm distribution), 做为一种重要的分布规律, 有广泛的用途;

注意正态分布包含两个参数, 均值(mean) 和标准差(standard deviation);

随机库(#include <random>), 包含正态分布对象, norm_distribution<>, 可以用于生成正态分布;

代码如下:

#include <iostream>  
#include <vector>  
#include <string>  
#include <random>  
#include <algorithm>  
#include <cmath>  
      
      
using namespace std;  
      
      
int main()  
{  
    std::default_random_engine e; //引擎  
    std::normal_distribution<double> n(4, 1.5); //均值, 方差  
    std::vector<unsigned> vals(9);  
    for(std::size_t i=0; i != 200; ++i) {  
        unsigned v = std::lround(n(e)); //取整-最近的整数  
        if (v < vals.size())  
            ++vals[v];  
    }  
    for (std::size_t j=0; j != vals.size(); ++j)  
        std::cout << j << " : " << vals[j] << std::string(vals[j], '*') << std::endl;  
      
    int sum = std::accumulate(vals.begin(), vals.end(), 0);  
    std::cout << "sum = " << sum << std::endl;  
    return 0;  
}

更多精彩内容:http://www.bianceng.cn/Programming/cplus/

输出:

0 : 3***  
1 : 8********  
2 : 20********************  
3 : 38**************************************  
4 : 58**********************************************************  
5 : 42******************************************  
6 : 23***********************  
7 : 7*******  
8 : 1*  
sum = 200

作者:csdn博客 Spike_King

相关文章
  • 没有相关文章
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • 徐汉涛(www.xuhantao.com) © 2024 版权所有 All Rights Reserved.
  • 部分内容来自网络,如有侵权请联系站长尽快处理 站长QQ:965898558(广告及站内业务受理) 网站备案号:蒙ICP备15000590号-1