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

C++中生成隨機數(shù)的方法總結(jié)

 更新時間:2024年05月08日 12:02:37   作者:litanyuan  
這篇文章主要介紹了C++中生成隨機數(shù)的方法總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

背景

C++ 11 在頭文件 #include 中定義了隨機數(shù)庫,也可以使用 C 中生成隨機數(shù)的方法。

C 生成隨機數(shù)

概述

C 語言中使用 rand() 函數(shù)產(chǎn)生 0 ~ RAND_MAX 范圍內(nèi)均勻分布到整數(shù),其中 RAND_MAX 是和系統(tǒng)相關(guān)的一個固定值。

#include<stdlib.h> 
#include<time.h> 

srand(time(nullptr));//設(shè)置隨機數(shù)種子
rand();//產(chǎn)生一個隨機數(shù)

限定隨機數(shù)范圍

{//產(chǎn)生 [0,b) 范圍內(nèi)到隨機數(shù)  
  int randoxNumber = rand() % b ;
}
{//產(chǎn)生 [a,b) 范圍內(nèi)到隨機數(shù) 
    int randoxNumber = a + rand() % ( b -a ) ;
}
{//產(chǎn)生 [a,b] 范圍內(nèi)到隨機數(shù) 
    int randoxNumber = a + rand() % ( b -a +1 ) ;
}
{//產(chǎn)生 [0,1] 范圍內(nèi)到隨機小數(shù) 
    double randoxNumber =rand() / RAND_MAX
}
{//產(chǎn)生 [0,1) 范圍內(nèi)到隨機小數(shù) 
    double randoxNumber =rand() / ( RAND_MAX +1 )
}

C++ 中的隨機數(shù)

概述

C++ 11 在頭文件 #include 中定義了隨機數(shù)庫,包括隨機數(shù)生成器和隨機數(shù)分布器。

隨機數(shù)生成器

①.概述

隨機數(shù)生成器用來使用指定的種子產(chǎn)生一個隨機數(shù)。

②.random_device

random_device 是標準庫提供到一個非確定性隨機數(shù)生成器,使用硬件作為隨機數(shù)來源,故其調(diào)用代價較高,一般用來產(chǎn)生隨機數(shù)種子。

random_device rd;
for (int i = 0; i < 10; ++i)
{
  cout << rd() << endl;
}

在這里插入圖片描述

③.default_random_engine

default_random_engine 是標準庫提供的默認隨機數(shù)生成器,其實現(xiàn)和編譯器有關(guān)。

random_device rd;
  
default_random_engine r_eng(rd());
for (int i = 0; i < 10; ++i)
{
  cout << r_eng() << endl;
}

④.minstd_rand

minstd_rand 是標準庫提供的采用線性同余算法的偽隨機數(shù)生成器。

random_device rd;
  
minstd_rand   r_eng(rd());
for (int i = 0; i < 10; ++i)
{
  cout << r_eng() << endl;
}

⑤.mt19937

mt19937 是標準庫提供的采用梅森旋轉(zhuǎn)算法的偽隨機數(shù)生成器,可以快速產(chǎn)生高質(zhì)量到隨機數(shù)。

random_device rd;
  
mt19937  r_eng(rd());
for (int i = 0; i < 10; ++i)
{
  cout << r_eng() << endl;
}

⑥.ranlux24_base

ranlux24_base 是標準庫提供的采用帶進位減法的偽隨機數(shù)生成器。

random_device rd;
  
ranlux24_base  r_eng(rd());
for (int i = 0; i < 10; ++i)
{
  cout << r_eng() << endl;
}

隨機數(shù)分布器

①.概述

隨機數(shù)分布器用于限定生成隨機數(shù)的范圍及分布類型。

②.uniform_int_distribution

uniform_int_distribution 用于生成指定范圍的均勻分布的整數(shù)。

random_device rd;//用于生成隨機數(shù)種子
mt19937 r_eng(rd());//隨機數(shù)生成器  
uniform_int_distribution<int> dis(1, 100);//隨機數(shù)分布器 閉區(qū)間

for (int i = 0; i < 10; ++i)
{
  cout << dis(r_eng) << endl;
}

在這里插入圖片描述

③.uniform_real_distribution

uniform_real_distribution 用于生成指定范圍的均勻分布的浮點數(shù)。

random_device rd;//用于生成隨機數(shù)種子
mt19937 r_eng(rd());//隨機數(shù)生成器  
uniform_real_distribution<double> dis(1, 100);//隨機數(shù)分布器 閉區(qū)間

for (int i = 0; i < 10; ++i)
{
  cout << dis(r_eng) << endl;
}

在這里插入圖片描述

④.normal_distribution

normal_distribution 用于生成指定均值和方差的正態(tài)分布的浮點數(shù)。

random_device rd;//用于生成隨機數(shù)種子
mt19937 r_eng(rd());//隨機數(shù)生成器  
normal_distribution  <> dis(4, 1.5);//隨機數(shù)分布器,均值、方差

for (int i = 0; i < 10; ++i)
{
  cout << dis(r_eng) << endl;
}

在這里插入圖片描述

⑤.bernoulli_distribution

bernoulli_distribution 用于生成二項分布到布爾值,可以指定 true 的概率。

random_device rd;//用于生成隨機數(shù)種子
mt19937 r_eng(rd());//隨機數(shù)生成器  
bernoulli_distribution   dis( 0.6);//隨機數(shù)分布器,生成 1 的概率是 0.6

for (int i = 0; i < 10; ++i)
{
  cout << dis(r_eng) << endl;
}

在這里插入圖片描述

Qt 中的隨機數(shù)

概述

Qt 中生成隨機數(shù)的方法和 C 語言中差不多,對應(yīng)到函數(shù)為 qsrand() 、qrand()。使用使需要包含頭文件 #include 。

代碼示例

auto seed = QDateTime::currentDateTime().toMSecsSinceEpoch();

qsrand(seed);
for (int i = 0; i < 10; ++i)
{
  qDebug() << qrand() % 10;// 0 - 9 范圍
}

以上就是C++中生成隨機數(shù)的方法總結(jié)的詳細內(nèi)容,更多關(guān)于C++生成隨機數(shù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C++程序的執(zhí)行順序結(jié)構(gòu)以及關(guān)系和邏輯運算符講解

    C++程序的執(zhí)行順序結(jié)構(gòu)以及關(guān)系和邏輯運算符講解

    這篇文章主要介紹了C++程序的執(zhí)行順序結(jié)構(gòu)以及關(guān)系和邏輯運算符講解,是C++入門學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • 詳解C標準庫堆內(nèi)存函數(shù)

    詳解C標準庫堆內(nèi)存函數(shù)

    在C/C++語言中,我們知道內(nèi)存分為這幾種:程序全局變量內(nèi)存、棧內(nèi)存、堆內(nèi)存。其中堆內(nèi)存就是通過malloc(new)來分配的內(nèi)存,本文我們來探討一下C標準庫堆內(nèi)存函數(shù)。
    2021-06-06
  • C++實現(xiàn)LeetCode(102.二叉樹層序遍歷)

    C++實現(xiàn)LeetCode(102.二叉樹層序遍歷)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(102.二叉樹層序遍歷),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++異常捕捉與處理的深入講解

    C++異常捕捉與處理的深入講解

    這篇文章主要給你大家介紹了關(guān)于C++異常捕捉與處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • Matlab實現(xiàn)四種HSV色輪圖繪制的示例代碼

    Matlab實現(xiàn)四種HSV色輪圖繪制的示例代碼

    色輪圖就是色彩相位圖,它完整表現(xiàn)了色相環(huán)360度的全部顏色。本文將利用Matlab語言繪制四種不同的HSV色輪圖,感興趣的可以動手嘗試一下
    2022-07-07
  • 關(guān)于C語言中數(shù)據(jù)在內(nèi)存中的存儲詳解

    關(guān)于C語言中數(shù)據(jù)在內(nèi)存中的存儲詳解

    這篇文章主要給大家介紹了關(guān)于C語言中數(shù)據(jù)在內(nèi)存中的存儲的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • C++和python實現(xiàn)單鏈表及其原理

    C++和python實現(xiàn)單鏈表及其原理

    這篇文章主要介紹了C++和python實現(xiàn)單鏈表及其原理,單鏈表是鏈表家族中的一員,每個節(jié)點依舊由數(shù)據(jù)域(data)和指針域(next)組成,鏈表的具體概念下面文章將詳細介紹,需要的小伙伴可以參考一下
    2022-03-03
  • 基于QT5實現(xiàn)一個時鐘桌面

    基于QT5實現(xiàn)一個時鐘桌面

    這篇文章主要介紹了利用QT5實現(xiàn)的一個時鐘桌面,文中的示例代碼講解詳細,對我們學習或工作有一定的幫助,感興趣的小伙伴可以了解一下
    2022-01-01
  • C++基于文件流與armadillo讀取mnist示例詳解

    C++基于文件流與armadillo讀取mnist示例詳解

    這篇文章主要給大家介紹了關(guān)于C++基于文件流與armadillo讀取mnist的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • IOS開發(fā)之UIScrollView實現(xiàn)圖片輪播器的無限滾動

    IOS開發(fā)之UIScrollView實現(xiàn)圖片輪播器的無限滾動

    這篇文章主要介紹了IOS開發(fā)之UIScrollView實現(xiàn)圖片輪播器的無限滾動的相關(guān)資料,需要的朋友可以參考下
    2017-07-07

最新評論

金昌市| 星子县| 乐至县| 潮安县| 綦江县| 邵阳市| 祁阳县| 锦屏县| 富源县| 长沙县| 乐陵市| 高雄市| 遵义县| 东乌珠穆沁旗| 项城市| 无棣县| 运城市| 郴州市| 图片| 光山县| 万山特区| 吴江市| 腾冲县| 禄劝| 兴化市| 莱州市| 渝中区| 大同县| 化德县| 句容市| 宁德市| 大石桥市| 南丰县| 崇仁县| 河津市| 玉屏| 云南省| 攀枝花市| 会东县| 亳州市| 巴林右旗|