您好,登錄后才能下訂單哦!
在C++中,有兩種主要的隨機數(shù)生成庫:<cstdlib>
和<random>
。這里將分別對它們進行詳細介紹。
<cstdlib>
庫<cstdlib>
庫提供了一個簡單的隨機數(shù)生成器,通過rand()
函數(shù)生成一個[0, RAND_MAX]范圍內(nèi)的偽隨機整數(shù)。RAND_MAX
是一個常量,表示生成的隨機數(shù)的最大值。為了獲得不同的隨機數(shù)序列,需要使用srand()
函數(shù)設置隨機數(shù)生成器的種子。
示例代碼:
#include<iostream>
#include <cstdlib>
#include <ctime>
int main() {
// 使用當前時間作為隨機數(shù)生成器的種子
std::srand(static_cast<unsigned int>(std::time(nullptr)));
// 生成一個0到99之間的隨機數(shù)
int random_number = std::rand() % 100;
std::cout << "Random number: "<< random_number<< std::endl;
return 0;
}
2.
<random>
庫提供了更高質(zhì)量的隨機數(shù)生成器,支持多種隨機數(shù)分布和引擎。這個庫包括以下組件:
std::mt19937
。std::uniform_int_distribution
和std::normal_distribution
。示例代碼:
#include<iostream>
#include<random>
int main() {
// 創(chuàng)建一個基于Mersenne Twister算法的隨機數(shù)引擎
std::random_device rd;
std::mt19937 gen(rd());
// 創(chuàng)建一個0到99之間的均勻分布
std::uniform_int_distribution<> dis(0, 99);
// 生成一個隨機數(shù)
int random_number = dis(gen);
std::cout << "Random number: "<< random_number<< std::endl;
return 0;
}
總結(jié):
<cstdlib>
庫提供了一個簡單的隨機數(shù)生成器,適用于簡單的隨機數(shù)需求。
-庫提供了更高質(zhì)量的隨機數(shù)生成器,支持多種分布和引擎,適用于復雜的隨機數(shù)需求。在實際開發(fā)中,推薦使用
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。