Aracılığıyla paylaş


random_device Sınıfı

Dış cihazdan rastgele bir sıra oluşturur.

Sözdizimi

class random_device {
public:
   typedef unsigned int result_type;

   // constructor
   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;
   };

Üyeler

random_device
entropi
random_device::operator()

Açıklamalar

sınıfı rastgele sayıların kaynağını açıklar ve ISO C++ Standardı tarafından belirlenemeyen veya kriptografik olarak güvenli olması gerekmez. Visual Studio uygulamasında üretilen değerler belirlenimci olmayan ve kriptografik olarak güvenlidir, ancak altyapılardan ve altyapı bağdaştırıcılarından (mersenne_twister_engine, çoğu uygulama için yüksek kalite ve hızlı motor gibi) oluşturulan oluşturuculardan daha yavaş çalışır.

random_devicesonuçlar, [32) kapalı aralıkta 0, 2tekdüzen olarak dağıtılır.

random_device engelleyici olmayan bir çağrıya neden olması garanti değildir.

Genellikle, random_device motorlar veya motor bağdaştırıcıları ile oluşturulan diğer jeneratörleri tohum için kullanılır. Daha fazla bilgi için bkz <. rastgele>.

Örnek

Aşağıdaki kod, bu sınıfın temel işlevlerini ve örnek sonuçları gösterir. öğesinin belirleyici olmayan yapısı nedeniylerandom_device, Çıkış bölümünde gösterilen rastgele değerler sonuçlarınız ile eşleşmez. Bu normal ve beklenen bir durumdur.

// 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;
}
entropy == 32
min == 0
max == 4294967295
a random value == 2378414971
a random value == 3633694716
a random value == 213725214

Bu örnek basittir ve bu oluşturucu için genel kullanım örneğini temsil eden bir örnek değildir. Daha temsili bir kod örneği için bkz <. rastgele>.

Gereksinimler

Üst bilgi:<rastgele>

Ad alanı: std

random_device::random_device

Oluşturucuyu oluşturur.

random_device(const std::string& = "");

Açıklamalar

Oluşturucu, dize parametresini yoksayarak oluşturucuyu gerektiği gibi başlatır. başlatılamadıysa, özel durumdan türetilen uygulama tanımlı bir türün random_device değerini oluşturur.

random_device::entropi

Kaynağın rastgeleliğini tahmin eder.

double entropy() const noexcept;

Açıklamalar

Üye işlevi, bit cinsinden ölçülen kaynağın rastgeleliğine ilişkin bir tahmin döndürür.

random_device::operator()

Rastgele bir değer döndürür.

result_type operator()();

Açıklamalar

Üye işlevleri min() ve max()tarafından belirlenen [ min, max] kapalı aralığında tekdüzen dağıtılmış değerleri döndürür. Rastgele bir sayı alınamadıysa, özel durumdan türetilen uygulama tanımlı türün değerini atar.

Ayrıca bkz.

<rastgele>