Partager via


random_device, classe

Génère une séquence aléatoire à partir d'un appareil externe.

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

Membres

random_device::random_device

random_device::entropy

random_device::operator()

Notes

La classe décrit une source de nombres aléatoires et a l'autorisation, sans y être obligée, d'être non déterministe ou sécurisée par chiffrement par la norme ISO C++. Dans l'implémentation Visual Studio, les valeurs produites sont non déterministes et sécurisées par chiffrement, mais elles sont exécutées plus lentement que les générateurs créés à partir de moteurs et d'adaptateurs de moteurs (tels que mersenne_twister_engine, le moteur rapide et de qualité élevée de choix pour la plupart des applications).

Les résultats random_device sont distribués de manière uniforme dans la plage fermée [0, 232).

Il n'est pas garanti que random_device aboutisse à un appel non bloquant.

Généralement, random_device est utilisé pour amorcer d'autres générateurs créés avec des moteurs ou adaptateurs de moteurs. Pour plus d'informations, voir <random>.

Exemple

Le code suivant illustre les fonctionnalités de base de cette classe et des exemples de résultats. En raison de la nature non déterministe de random_device, les valeurs aléatoires affichées dans la section Sortie ne correspondent pas à vos résultats. Cela est normal et prévu.

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

Sortie :

  

Cet exemple est simpliste et ne représente pas le cas d'utilisation générale de ce générateur. Pour obtenir un exemple de code plus représentatif, voir <random>.

Configuration requise

En-tête : <random>

Espace de noms : std

Voir aussi

Référence

<random>