最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++ normal_distribution高斯正態(tài)分布函數(shù)的用法示例

 更新時間:2021年07月15日 15:48:23   作者:c語言中文網(wǎng)  
高斯分布也稱為正態(tài)分布(normal distribution),常用的成熟的生成高斯分布隨機數(shù)序列的方法由Marsaglia和Bray在1964年提出,這篇文章主要給大家介紹了關(guān)于C++ normal_distribution高斯正態(tài)分布函數(shù)用法的相關(guān)資料,需要的朋友可以參考下

圖 1 顯示的是正態(tài)(或高斯)分布。它是一條連續(xù)的貝爾曲線,期望兩邊的值是相等的,可以理解為期望就是平均值。它是一個概率分布,因此曲線下方的面積是1。正態(tài)分布是由兩個參數(shù)完全定義的:期望和標準差,它們是衡量期望兩邊的值如何分布的一種方式。


圖 1 正態(tài)分布

期望和標準差分別是用希臘字母 μ 和 σ 來表示的,變量 x 有 n 個樣本,這些是由下面的公式定義的:

因此,期望就是值的和除以值的個數(shù)一換句話說,也就是平均值。可以通過值和期望的差值的平方子和除以 n-1,然后對結(jié)果開方來得到標準差。對于不同的期望和標準差的值,正態(tài)分布的相對寬度和高度分布曲線的變化是相當大的。但是,分布值總是如圖 1 所示。這意味著,如果知道一個符合正態(tài)分布的變量的期望和標準差,例如在大量人口中個體的身高,就可以知道 95% 的人身高不超過期望的 2σ。標準正態(tài)分布的期望為 0,標準差為 1。

uniform_distribution 模板定義了可以產(chǎn)生隨機浮點值的分布對象類型,默認是 double 類型。默認構(gòu)造函數(shù)創(chuàng)建的是標準正態(tài)分布,因此期望是 0,方差是 1.0:

std::normal_distribution<> dist; // mu: 0 sigma: 1

下面展示了如何創(chuàng)建一個有特定值和標準差的正態(tài)分布:

double mu {50.0}, sigma {10.0};
std::normal_distribution<> norm {mu, sigma};

這里定義了一個生成 double 值的分布對象,期望為 50.0,標準差是 10.0。為了生成值,可以將一個隨機數(shù)生成器傳給 norm 函數(shù)對象。例如:

std::random_device rd;
std::default_random_engine rng {rd()};
std::cout << "Normally distributed values: "<< norm (rng) << " " << norm (rng) << std::endl; // 39.6153 45.5608

可以通過調(diào)用對象的成員函數(shù) mean() 和 stddev() 來獲取它的期望值和標準差:

std::cout<<"mu: "<< norm.mean () << " sigma: " << norm.stddev ()<< std::endl; // mu: 50 sigma: 10

通過調(diào)用無參數(shù)的成員函數(shù) param(),可以得到一個封裝了這兩個值的 param_type 對象。為了設(shè)置期望或標準差,需要將一個 param_type 對象傳給成員函數(shù) Pamm()。分布類有用來獲取期望和標準差的成員,param_type 對象擁有和它們的名字相同的成員函數(shù)。下 面是一個示例:

using Params = std::normal_distribution<>::param_type; // Type alias for readability
double mu {50.0}, sigma {10.0};
std::normal_distribution<> norm {mu, sigma};// Create distribution
auto params = norm.param(); // Get mean and standard deviation
norm.param(Params {params.mean(),params.stddev() + 5.0}); // Modify params
std::cout << "mu: "<< norm.mean() << " sigma: " << norm.stddev ()<< std::endl; // mu: 50 sigma: 15

這里調(diào)用無參數(shù)的 param() 來獲取包含期望和方差的 param_type 對象。在第二個 param() 調(diào)用中,通過傳入一個 Pams 對象將標準差增加了 5.0。

可以通過傳入一個 param_type 對象作為一個分布對象調(diào)用的第二個參數(shù)來臨時設(shè)置期望和標準差:

using Params = std::normal_distribution<>::param_type; // Type alias for readability
std::random_device rd;
std::default_random_engine rng {rd()};
std::normal_distribution<> norm {50.0, 10.0}; // Create distribution
Params new_p {100.0, 30.0};// mu=100 sigma=30
std::cout << norm(rng, new_p) << std::endl; // Generate value with new_p: 100.925
std::cout << norm,mean() << " " << norm.stddev()<< std::endl;// 50 10

new_p 定義的期望和標準差只會被應(yīng)用到它被作為第二個參數(shù)傳入的 norm 的執(zhí)行中。原始的期望和標準差會被應(yīng)用到隨后的沒有第二個參數(shù)的 norm 調(diào)用中。

成員函數(shù) min() 和 max() 返回的是分布可以產(chǎn)生的最小值和最大值。對于分布來說,這并不是特別有用。因為返回值的類型可以這樣表示最大值和最小值:

std::cout << "min: " << norm.min () << " max: " << norm.max ()<< std::endl; // min:4.94066e-324 max: 1.7 9769e+308

總結(jié)

到此這篇關(guān)于C++ normal_distribution高斯正態(tài)分布函數(shù)的文章就介紹到這了,更多相關(guān)C++ normal_distribution高斯正態(tài)分布函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++實現(xiàn)LeetCode(100.判斷相同樹)

    C++實現(xiàn)LeetCode(100.判斷相同樹)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(100.判斷相同樹),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言實現(xiàn)字符串操作函數(shù)的實例

    C語言實現(xiàn)字符串操作函數(shù)的實例

    這篇文章主要介紹了C語言實現(xiàn)字符串操作函數(shù)的實例的相關(guān)資料,開發(fā)程序的時候經(jīng)常使用到一些字符串函數(shù),例如求字符串長度,拷貝字符串……,需要的朋友可以參考下
    2017-08-08
  • C++11原子操作詳解

    C++11原子操作詳解

    這篇文章主要為大家介紹了C++的原子操作,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • 一篇文章帶你入門C語言:數(shù)組

    一篇文章帶你入門C語言:數(shù)組

    這篇文章主要介紹了C語言中數(shù)組的一些基本知識小結(jié),其中重點是對于數(shù)組的內(nèi)存分配相關(guān)方面的知識整理,需要的朋友可以參考下
    2021-08-08
  • C++運算符重載的詳細講解

    C++運算符重載的詳細講解

    這篇文章主要給大家介紹了關(guān)于C++運算符重載的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Dev C++中文亂碼的有效解決方案

    Dev C++中文亂碼的有效解決方案

    在DevC++中出現(xiàn)漢字亂碼的問題通常是由于編碼設(shè)置不正確導致的,本文通過圖文結(jié)合的方式給大家介紹了解決方法,對大家的解決問題有一定的幫助,需要的朋友可以參考下
    2025-04-04
  • sizeof()的簡單介紹

    sizeof()的簡單介紹

    sizeof操作符以字節(jié)形式給出了其操作數(shù)的存儲大小
    2013-04-04
  • C++基礎(chǔ)入門教程(九):函數(shù)指針之回調(diào)

    C++基礎(chǔ)入門教程(九):函數(shù)指針之回調(diào)

    這篇文章主要介紹了C++基礎(chǔ)入門教程(九):函數(shù)指針之回調(diào),本文講解了函數(shù)的地址、聲明函數(shù)指針、歷史原因、typedef挽救復雜的函數(shù)指針等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • OpenCV實戰(zhàn)之基于Hu矩實現(xiàn)輪廓匹配

    OpenCV實戰(zhàn)之基于Hu矩實現(xiàn)輪廓匹配

    這篇文章主要介紹了利用C++ OpenCV實現(xiàn)基于Hu矩的輪廓匹配,文中的示例代碼講解詳細,對我們學習OpenCV有一定的幫助,感興趣的可以學習一下
    2022-01-01
  • C++實現(xiàn)讀寫文件的示例代碼

    C++實現(xiàn)讀寫文件的示例代碼

    這篇文章主要介紹了C++實現(xiàn)讀寫文件的示例代碼,幫助大家更好的理解和學習c++,感興趣的朋友可以了解下
    2020-08-08

最新評論

古丈县| 会昌县| 玉环县| 社旗县| 桃源县| 普格县| 九江市| 南岸区| 深水埗区| 新郑市| 绍兴县| 灵寿县| 墨竹工卡县| 高阳县| 本溪市| 前郭尔| 疏勒县| 鄢陵县| 阿拉善盟| 彰化县| 常熟市| 光泽县| 安多县| 稻城县| 潼关县| 涡阳县| 三门峡市| 南平市| 宝清县| 辽中县| 上林县| 金湖县| 高密市| 黄石市| 繁昌县| 郸城县| 阿合奇县| 平果县| 墨竹工卡县| 门头沟区| 布尔津县|