欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

從前的隨機數(shù)

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

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

這種方式有一個難點,就是不容易控制輸出結果的范圍。特別是希望不是均勻分布的時候就更難。

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

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

隨機數(shù)引擎

標準庫提供了多重隨機數(shù)引擎,這里以default_random_engine類為例進行說明。

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

隨機數(shù)分布類

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

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

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

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

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

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

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

生成概率可控的布爾值

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

輸出結果

補充:真正的隨機數(shù)

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

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

總結

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

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

相關文章

  • C++實現(xiàn)簡單通訊錄系統(tǒng)

    C++實現(xiàn)簡單通訊錄系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)簡單通訊錄系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C語言入門篇--注釋,關鍵字typedef及轉義字符詳解

    C語言入門篇--注釋,關鍵字typedef及轉義字符詳解

    本篇文章是c語言基礎篇,主要為大家介紹了C語言的關鍵字typedef,注釋,轉義字符的基本理論知識,希望可以幫助大家快速入門c語言的世界,更好的理解c語言
    2021-08-08
  • 關于C++中sort()函數(shù)的用法,你搞明白了沒

    關于C++中sort()函數(shù)的用法,你搞明白了沒

    這篇文章主要介紹了關于C++中sort()函數(shù)的用法,并通過三種方法介紹了按降序排列的實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • C語言編程中建立和解除內(nèi)存映射的方法

    C語言編程中建立和解除內(nèi)存映射的方法

    這篇文章主要介紹了C語言編程中建立和解除內(nèi)存映射的方法,分別為mmap()函數(shù)和munmap()函數(shù)的使用,需要的朋友可以參考下
    2015-08-08
  • C語言數(shù)組學習之特殊矩陣的壓縮存儲

    C語言數(shù)組學習之特殊矩陣的壓縮存儲

    矩陣在計算機圖形學、工程計算中都占有舉足輕重的地位,本文將討論如何將矩陣更有效地存儲在內(nèi)存中,并且能夠方便地提取矩陣中的元素。感興趣的同學可以了解一下
    2021-12-12
  • C++基于EasyX框架實現(xiàn)飛機大戰(zhàn)小游戲

    C++基于EasyX框架實現(xiàn)飛機大戰(zhàn)小游戲

    EasyX是針對C/C++的圖形庫,可以幫助使用C/C++語言的程序員快速上手圖形和游戲編程。本文將利用EasyX框架實現(xiàn)飛機大戰(zhàn)小游戲,需要的可以參考一下
    2023-01-01
  • c++中處理相關數(shù)學函數(shù)

    c++中處理相關數(shù)學函數(shù)

    數(shù)學庫函數(shù)聲明在 math.h 中,主要有:
    2013-04-04
  • C++核心編程之內(nèi)存分區(qū)詳解

    C++核心編程之內(nèi)存分區(qū)詳解

    這篇文章主要為大家詳細介紹了C++核心編程之內(nèi)存分區(qū),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C語言封裝函數(shù)字符串練習匯總分享

    C語言封裝函數(shù)字符串練習匯總分享

    這篇文章主要介紹了C語言封裝函數(shù)字符串練習匯總分享,分享內(nèi)容有字符串查找、字符串拼接、字符串轉整數(shù)等內(nèi)容,需要而小伙伴可以參考一下
    2022-03-03
  • C語言sizeof和strlen的指針和數(shù)組面試題詳解

    C語言sizeof和strlen的指針和數(shù)組面試題詳解

    strlen是函數(shù),字符串長度,不包括停止符。而sizeof則是內(nèi)存塊的大小,包括停止符。數(shù)組是一種數(shù)據(jù)類型,數(shù)據(jù)類型的本質就是固定大小,內(nèi)存塊的別名??梢杂胹izeof()一般都是數(shù)據(jù)類型
    2022-04-04

最新評論