Namespaces
Variants

std:: uniform_int_distribution

From cppreference.net
Défini dans l'en-tête <random>
template < class IntType = int >
class uniform_int_distribution ;
(depuis C++11)

Produit des valeurs entières aléatoires i , uniformément distribuées sur l'intervalle fermé [a, b] , c'est-à-dire distribuées selon la fonction de probabilité discrète

P(i|a,b) =
1
b − a + 1
.
**Note:** Le texte à traduire était uniquement le point final (".") à la fin du contenu, qui a été conservé tel quel car il ne nécessite pas de traduction dans ce contexte mathématique. Tous les autres éléments (balises HTML, contenu mathématique, termes C++) ont été préservés conformément aux instructions.

std::uniform_int_distribution satisfait toutes les exigences de RandomNumberDistribution .

Table des matières

Paramètres du modèle

IntType - Le type de résultat généré par le générateur. L'effet est indéfini si ce n'est pas l'un des short , int , long , long long , unsigned short , unsigned int , unsigned long , ou unsigned long long .

Types membres

Type de membre Définition
result_type (C++11) IntType
param_type (C++11) le type du jeu de paramètres, voir RandomNumberDistribution .

Fonctions membres

construit une nouvelle distribution
(fonction membre publique)
(C++11)
réinitialise l'état interne de la distribution
(fonction membre publique)
Génération
(C++11)
génère le prochain nombre aléatoire dans la distribution
(fonction membre publique)
Caractéristiques
(C++11)
retourne les paramètres de la distribution
(fonction membre publique)
(C++11)
obtient ou définit l'objet paramètre de distribution
(fonction membre publique)
(C++11)
retourne la valeur potentiellement générée minimale
(fonction membre publique)
(C++11)
retourne la valeur potentiellement générée maximale
(fonction membre publique)

Fonctions non membres

(C++11) (C++11) (supprimé en C++20)
compare deux objets de distribution
(fonction)
effectue des opérations d'entrée/sortie sur flux pour la distribution de nombres pseudo-aléatoires
(modèle de fonction)

Exemple

Ce programme simule le lancer de dés à 6 faces.

#include <iostream>
#include <random>
int main()
{
    std::random_device rd;  // a seed source for the random number engine
    std::mt19937 gen(rd()); // mersenne_twister_engine seeded with rd()
    std::uniform_int_distribution<> distrib(1, 6);
    // Use distrib to transform the random unsigned int
    // generated by gen into an int in [1, 6]
    for (int n = 0; n != 10; ++n)
        std::cout << distrib(gen) << ' ';
    std::cout << '\n';
}

Sortie possible :

1 1 6 5 2 2 5 5 6 2