Udostępnij za pośrednictwem


random_device — Klasa

Generuje losowe sekwencje z zewnętrznego urządzenia.

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

Elementy członkowskie

random_device::random_device

random_device::entropy

random_device::operator()

Uwagi

Klasa opisuje źródło liczby losowe i jest dozwolone, ale nie muszą być niedeterministyczne lub kryptograficznie bezpiecznego Standard C++ ISO.W programie Visual Studio implementacji wartości będące są niedeterministyczne i kryptograficznie zabezpieczyć, ale działa wolniej, niż generatorów utworzone na podstawie aparaty i adapterów aparatu (takie jak mersenne_twister_engine, wysokiej jakości i szybkie aparat wybranego dla większości aplikacji).

random_devicewyniki mogą być równomiernie rozłożone w zakresie zamkniętej [0, 232).

random_devicenie musi powodować połączenie bez blokowania.

Ogólnie rzecz biorąc random_device jest używany do generowania innych generatorów utworzone za pomocą aparatów lub adapterów aparatu.Aby uzyskać więcej informacji, zobacz <random>.

Przykład

Poniższy kod pokazuje podstawowe funkcje tej klasy i przykład wyników.Z powodu niedeterministyczne charakter random_device, losowych wartości wyświetlane w danych wyjściowych sekcji nie będą zgodne wyniki.Jest to normalne i oczekiwanych.

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

Dane wyjściowe:

  

W tym przykładzie jest simplistic i nie językiem ogólne przypadek użycia dla tego generatora.Dla bardziej językiem przykładowy kod, zobacz <random>.

Wymagania

Nagłówek: < losowe >

Przestrzeń nazw: std

Zobacz też

Informacje

<random>