共用方式為


random_device 類別

從外部裝置產生隨機序列。

class random_device { public:     typedef unsigned int result_type;     // cosntructor     explicit random_device(const std::string& token = "");     // properties     static result_type min();     static result_type max();     double entropy() const;     // generate     result_type operator()();     // no-copy functions     random_device(const random_device&) = delete;     void operator=(const random_device&) = delete; };

Members

random_device::random_device

random_device::entropy

random_device::operator()

備註

此類別會描述亂數的來源,且允許 (但不一定需要) 是不具決定性,或是由 ISO C++ 標準以密碼編譯保護。 在 Visual Studio 實作中,產生的值是不具決定性且以密碼編譯保護,但執行速度比從引擎及引擎配接器 (例如 mersenne_twister_engine,對大多數應用程式而言是高品質且快速的引擎選擇) 建立的產生器更慢。

random_device 結果會統一分佈在接近的範圍 [0, 232) 中。

random_device 不保證會產生未封鎖的呼叫。

一般而言,會使用 random_device 植入使用引擎或引擎配接器建立的其他產生器。 如需詳細資訊,請參閱<random>

範例

下列程式碼示範此類別的基本功能及範例結果。 因為 random_device 的不具決定性特質,顯示在輸出一節中的隨機值不會與您的結果相符。 這是正常且符合預期的。

// random_device_engine.cpp 
// cl.exe /W4 /nologo /EHsc /MTd 
#include <random> 
#include <iostream> 
using namespace std;

int main() 
{ 
    random_device gen; 
 
    cout << "entropy == " << gen.entropy() << endl; 
    cout << "min == " << gen.min() << endl; 
    cout << "max == " << gen.max() << endl; 
 
    cout << "a random value == " << gen() << endl; 
    cout << "a random value == " << gen() << endl; 
    cout << "a random value == " << gen() << endl; 
}

輸出:

  

這是針對此產生器的最簡化範例,不代表一般使用情況。 如需較有代表性的程式碼範例,請參閱 <random>

需求

標頭:<random>

命名空間: std

請參閱

參考

<random>