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

C++中生成隨機數的方法總結

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

背景

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

C 生成隨機數

概述

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

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

srand(time(nullptr));//設置隨機數種子
rand();//產生一個隨機數

限定隨機數范圍

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

C++ 中的隨機數

概述

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

隨機數生成器

①.概述

隨機數生成器用來使用指定的種子產生一個隨機數。

②.random_device

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

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

在這里插入圖片描述

③.default_random_engine

default_random_engine 是標準庫提供的默認隨機數生成器,其實現(xià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 是標準庫提供的采用線性同余算法的偽隨機數生成器。

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

⑤.mt19937

mt19937 是標準庫提供的采用梅森旋轉算法的偽隨機數生成器,可以快速產生高質量到隨機數。

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

⑥.ranlux24_base

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

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

隨機數分布器

①.概述

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

②.uniform_int_distribution

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

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

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

在這里插入圖片描述

③.uniform_real_distribution

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

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

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

在這里插入圖片描述

④.normal_distribution

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

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

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

在這里插入圖片描述

⑤.bernoulli_distribution

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

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

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

在這里插入圖片描述

Qt 中的隨機數

概述

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

代碼示例

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

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

以上就是C++中生成隨機數的方法總結的詳細內容,更多關于C++生成隨機數的資料請關注腳本之家其它相關文章!

相關文章

  • C++程序的執(zhí)行順序結構以及關系和邏輯運算符講解

    C++程序的執(zhí)行順序結構以及關系和邏輯運算符講解

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

    詳解C標準庫堆內存函數

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

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

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

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

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

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

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

    關于C語言中數據在內存中的存儲詳解

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

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

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

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

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

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

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

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

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

最新評論

赤壁市| 连云港市| 本溪| 吉木萨尔县| 巢湖市| 那坡县| 武安市| 永安市| 荣成市| 南澳县| 鹤岗市| 古丈县| 大竹县| 巴中市| 田东县| 准格尔旗| 玛沁县| 云南省| 东兴市| 固原市| 师宗县| 蕉岭县| 福海县| 岳阳市| 和田县| 彰化县| 水城县| 西林县| 临猗县| 临泽县| 新安县| 吴堡县| 涡阳县| 太谷县| 绵阳市| 阳谷县| 德惠市| 普宁市| 沙洋县| 西峡县| 巴林右旗|