Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.