C++ named requirements: UniformRandomBitGenerator (since C++11)
Un générateur de bits aléatoire uniforme est un objet fonction retournant des valeurs entières non signées telles que chaque valeur dans la plage des résultats possibles a (idéalement) une probabilité égale.
Les générateurs uniformes de bits aléatoires ne sont pas destinés à être utilisés comme générateurs de nombres aléatoires : ils sont utilisés comme source de bits aléatoires (générés en bloc, pour l'efficacité). Tout générateur uniforme de bits aléatoires peut être connecté à toute distribution de nombres aléatoires afin d'obtenir un nombre aléatoire (formellement, une variable aléatoire).
         Table des matières | 
       
Exigences
       Le type
       
        G
       
       satisfait
       
        UniformRandomBitGenerator
       
       si
      
| 
          
          Étant donné
          
           
            g
           
          
          , une valeur de type
           
  | 
        (jusqu'à C++20) | 
| Expression | Type | Exigences | 
|---|---|---|
| G :: min ( ) | 
         
          G::result_type
         
         | 
        
         
  | 
       
| G :: max ( ) | 
         
          G::result_type
         
         | 
        
         
  | 
       
| g ( ) | 
         
          G::result_type
         
         | 
        
         
  | 
       
| 
          Toutes les conditions suivantes sont satisfaites : 
  | 
        (depuis C++20) | 
Notes
Tous les RandomNumberEngine s satisfont à cette exigence.
Bibliothèque standard
Les fonctionnalités suivantes de la bibliothèque standard attendent un type UniformRandomBitGenerator .
| 
          
           
            
             
              (until C++17)
             
            
            
             
              (C++11)
             
            
           
           
          | 
        
         réorganise aléatoirement les éléments dans une plage
          (modèle de fonction)  | 
       
| 
          
           
            
             
              (C++17)
             
            
           
           
          | 
        
         sélectionne N éléments aléatoires d'une séquence
          (modèle de fonction)  | 
       
| 
          
           
            
             
              (C++11)
             
            
           
           
          | 
        
         distribue uniformément des valeurs réelles de précision donnée sur
         
          
           [
          
          
           
            
            
             0
            
            
           
          
          
           ,
          
          
           
            
             1
            
           
          
          
           )
          
         
         (modèle de fonction)  | 
       
| 
          
           
            
             
              (C++11)
             
            
           
           
          | 
        
         produit des valeurs entières uniformément distribuées sur une plage
          (modèle de classe)  | 
       
| 
          
           
            
             
              (C++11)
             
            
           
           
          | 
        
         produit des valeurs réelles uniformément distribuées sur une plage
          (modèle de classe)  | 
       
| toutes les autres distributions de nombres aléatoires | |
Les fonctionnalités suivantes de la bibliothèque standard satisfont UniformRandomBitGenerator sans satisfaire en plus RandomNumberEngine :
| 
          
           
            
             
              (C++11)
             
            
           
           
          | 
        
         générateur de nombres aléatoires non déterministe utilisant une source d'entropie matérielle
          (classe)  | 
       
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement corrigé | 
|---|---|---|---|
| 
         
          LWG 2154
         
          ( P0898R3 )  | 
        C++11 | 
         il n'était pas clair si
         
          
           G
           
            ::
           
           
            min
           
           
            (
           
           
            )
           
          
         
         et
         
          
           G
           
            ::
           
           
            max
           
           
            (
           
           
            )
           
          
         
          doivent être des expressions constantes [1]  | 
        requis | 
- ↑ L'exigence de complexité temporelle pour ces expressions était « à la compilation » avant C++20. La formulation est ambiguë, car « complexité temporelle à la compilation » peut être interprétée à la fois comme « peut être évaluée à la compilation » et « la complexité temporelle peut être déterminée à la compilation ».
 
Voir aussi
| 
          
           
            
             
              (C++20)
             
            
           
           
          | 
        
         spécifie qu'un type est qualifié comme générateur uniforme de bits aléatoires
          (concept)  |