程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++:隨機數 正態分布(norm distribution) 詳解

C++:隨機數 正態分布(norm distribution) 詳解

編輯:關於C++

正態分布(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;  
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved