本篇內(nèi)容主要講解“C++11隨機(jī)數(shù)庫怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“C++11隨機(jī)數(shù)庫怎么使用”吧!
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、庫爾勒網(wǎng)絡(luò)推廣、微信小程序開發(fā)、庫爾勒網(wǎng)絡(luò)營銷、庫爾勒企業(yè)策劃、庫爾勒品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供庫爾勒建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
從前的隨機(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
生成平均分布的實(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é)果
到此,相信大家對(duì)“C++11隨機(jī)數(shù)庫怎么使用”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!