std:: binomial_distribution
|
Défini dans l'en-tête
<random>
|
||
|
template
<
class
IntType
=
int
>
class binomial_distribution ; |
(depuis C++11) | |
Produit des valeurs entières non négatives aléatoires i , distribuées selon la fonction de probabilité discrète :
-
P(i|t,p) =
⎛
⎜
⎝ t
i ⎞
⎟
⎠ · p i
· (1 − p) t−i
La valeur obtenue est le nombre de succès dans une séquence de t expériences oui/non, dont chacune réussit avec une probabilité p .
std::binomial_distribution
satisfait
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
|
(C++11)
|
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) |
|
(C++11)
|
effectue des opérations d'entrée/sortie sur flux pour une distribution de nombres pseudo-aléatoires
(modèle de fonction) |
Exemple
Graphique de la distribution binomiale avec une probabilité de succès de chaque essai exactement de 0,5, illustrant la relation avec le triangle de Pascal (les probabilités qu'aucun, 1, 2, 3, ou la totalité des quatre essais soient réussis dans ce cas sont 1:4:6:4:1).
#include <iomanip> #include <iostream> #include <map> #include <random> #include <string> int main() { std::random_device rd; std::mt19937 gen(rd()); // perform 4 trials, each succeeds 1 in 2 times std::binomial_distribution<> d(4, 0.5); std::map<int, int> hist; for (int n = 0; n != 10000; ++n) ++hist[d(gen)]; for (auto const& [x, y] : hist) std::cout << x << ' ' << std::string(y / 100, '*') << '\n'; }
Sortie possible :
0 ****** 1 ************************ 2 ************************************* 3 ************************* 4 ******
Liens externes
| Weisstein, Eric W. "Distribution Binomiale." De MathWorld — Une ressource Web Wolfram. |