1. 程式人生 > 其它 >c++11 random_device 真隨機數最簡單應用

c++11 random_device 真隨機數最簡單應用

c++11提供了random_device,據說是真隨機數,不過只有在Linux下是真隨機,因為Linux有熵池;在Windows下只是呼叫了rand_s。( ・´ω`・ )

程式碼如下

#define random(min,max) (gen()%(max-min+1))+min
#include <random>//隨機數
using namespace std;
int main()
{
random_device rd;//隨機數發生器
mt19937 gen(rd());//隨機數引擎
cout<<random(0,100)<<endl;
}


不過不知為什麼,每次開啟程式隨機數序列都一樣,如有特殊需要可以加上標頭檔案,然後把

(gen()%(max-min+1))+min

改為

(gen()*time(NULL)%(max-min+1))+min


如果沒有看懂,可以去看以下講解

C++11隨機數的正確開啟方式

mt19937是什麼鬼?

或者檢視官方文件

random_device

mt19937

如果還沒有看懂,建議使用srand()和rand()

#define random(min,max) (rand()%(max-min+1))+min
#include <random>//隨機數
using namespace std;
int main()
{
srand(time(NULL));
cout
<<random(0,100)<<endl;
}

————————————————
版權宣告:本文為CSDN博主「Dwi yn」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/jgjfror/article/details/113790271