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

C++11新特性之隨機(jī)數(shù)庫(Random?Number?Library)詳解

 更新時(shí)間:2022年06月01日 15:05:16   作者:面向?qū)ο笏伎? 
相對于C++11之前的隨機(jī)數(shù)生成器來說,C++11的隨機(jī)數(shù)生成器是復(fù)雜了很多,下面這篇文章主要給大家介紹了關(guān)于C++11新特性之隨機(jī)數(shù)庫(Random?Number?Library)的相關(guān)資料,需要的朋友可以參考下

從前的隨機(jī)數(shù)

C++11之前,無論是C,還是C++都使用相同方式的來生成隨機(jī)數(shù),代碼大致如下:

由于rand()產(chǎn)生的是偽隨機(jī)數(shù),所以需要為rand函數(shù)提供種子。種子不同產(chǎn)生的隨機(jī)數(shù)序列也不同。通常的做法是調(diào)用srand(time(0)),由于time返回的是系統(tǒng)時(shí)間,每秒都會(huì)不同,所以產(chǎn)生的隨機(jī)數(shù)相同幾率就會(huì)變得很小。

這種方式有一個(gè)難點(diǎn),就是不容易控制輸出結(jié)果的范圍。特別是希望不是均勻分布的時(shí)候就更難。

隨機(jī)數(shù)庫(Random Number Library)

C++11中提供了隨機(jī)數(shù)庫,包括隨機(jī)數(shù)引擎類(random-number engines)和隨機(jī)數(shù)分布類(random-number distribution)。二者一般配合使用。

隨機(jī)數(shù)引擎

標(biāo)準(zhǔn)庫提供了多重隨機(jī)數(shù)引擎,這里以default_random_engine類為例進(jìn)行說明。

到這里為止,和之前的方式?jīng)]有什么本質(zhì)區(qū)別,只是形式不同。別忙,接著往下看。

隨機(jī)數(shù)分布類

C++11通過隨機(jī)數(shù)分布類來控制隨機(jī)數(shù)引擎生成的隨機(jī)數(shù)的分布情況。

生成平均分布的整數(shù)

代碼中使用uniform_int_distribution<int>來控制隨機(jī)數(shù)引擎生成0到10之間的整數(shù)。

生成平均分布的實(shí)數(shù)

代碼中使用uniform_real_distribution來控制隨機(jī)數(shù)引擎生成0到10之間的實(shí)數(shù)。

生成正態(tài)分布的實(shí)數(shù)

代碼中使用normal_distribution<>來控制隨機(jī)數(shù)引擎生成均值為2,標(biāo)準(zhǔn)差為0.25的正態(tài)分布數(shù)據(jù)。

生成概率可控的布爾值

代碼中使用bernoulli_distribution來控制隨機(jī)數(shù)引擎生成布爾值隨機(jī)數(shù),其中1的概率為0.3。

輸出結(jié)果

補(bǔ)充:真正的隨機(jī)數(shù)

C++11還提供了一個(gè)random_device隨機(jī)數(shù)類。它并不是由某一個(gè)數(shù)學(xué)算法得到的隨機(jī)序列,而是通過讀取文件,讀什么文件看具體的實(shí)現(xiàn)(Linux可以通過讀取/dev/random文件來獲取)。文件的內(nèi)容是隨機(jī)的,因?yàn)槲募?nèi)容是計(jì)算機(jī)系統(tǒng)的熵(熵指的是一個(gè)系統(tǒng)的混亂程度)。也是當(dāng)前系統(tǒng)的環(huán)境噪聲,系統(tǒng)噪音可以通過很多參數(shù)來評估,如內(nèi)存的使用,文件的使用量,不同類型的進(jìn)程數(shù)量等等。Linux的熵來自鍵盤計(jì)時(shí)、鼠標(biāo)移動(dòng)等。

不過gcc好像并沒有很好地實(shí)現(xiàn)這個(gè)類,我手里的Mingw4.9.0就不隨機(jī),每次運(yùn)行都得到同樣的序列。

總結(jié)

如果看一下C++11標(biāo)準(zhǔn)庫,你會(huì)發(fā)現(xiàn)還有很多種隨機(jī)數(shù)引擎類和隨機(jī)數(shù)分布類。需要的時(shí)候去學(xué)吧。

到此這篇關(guān)于C++11新特性之隨機(jī)數(shù)庫(Random Number Library)的文章就介紹到這了,更多相關(guān)C++11隨機(jī)數(shù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

泗阳县| 旬阳县| 北安市| 龙胜| 镇巴县| 绥德县| 合阳县| 开阳县| 祁连县| 常德市| 沐川县| 神池县| 五河县| 乐陵市| 太保市| 三都| 定西市| 福鼎市| 泊头市| 革吉县| 大埔区| 额济纳旗| 潼南县| 寿宁县| 攀枝花市| 花莲县| 璧山县| 琼结县| 沛县| 漳平市| 石棉县| 河津市| 绥中县| 自治县| 绥中县| 虹口区| 建昌县| 杨浦区| 久治县| 同心县| 仁化县|