Esta función se define en el encabezado aleatorio Random. La distribución binomial negativa es una distribución de números aleatorios que produce números enteros de acuerdo con una distribución discreta binomial negativa (también conocida como distribución de Pascal), que se describe mediante la siguiente función de masa de probabilidad.
El valor representa el número de fallas en una serie de pruebas independientes de sí/no (cada una tiene éxito con probabilidad p), antes de que ocurran exactamente k éxitos.
Sintaxis:
template( class IntType = int ) class negative_binomial_distribution
Parámetro de plantilla:
IntType: el tipo de resultado generado por el generador.
Tipos
de miembros Tipo de miembro y definición
tipo_resultado | tipoint |
param_type | El tipo devuelto por el parámetro de miembro |
Funciones de miembro: función de miembro público
- constructor(): construye una distribución binomial negativa
- operator(): generar un número aleatorio
- restablecer: restablecer la distribución
- param: Parámetros de distribución
- min : Valor mínimo
- máx : valor máximo
Parámetros de distribución: función miembro pública
- k : Parámetro de distribución k
- p : Parámetro de distribución p
Funciones no miembro: Plantillas de función
- operator<< : Insertar en el flujo de salida
- operator>> : Extraer del flujo de entrada
- operadores relacionales : Operadores relacionales
Debajo del programa para ilustrar la plantilla anterior
CPP
// C++ program to illustrate // negative_binomial_distribution #include <bits/stdc++.h> using namespace std; int main() { // number of experiments const int exps = 10000; // maximum number of stars to distribute const int numberstars = 100; // Generator generate numbers based // upon a generator function default_random_engine generator; // Aman watches GOT // At each episode, there's a 50% // chance that john snow will die // after how many time he'll be turned // away before watching 4 episodes? negative_binomial_distribution<int> distribution(4, 0.5); // initializing an array with size 10 int p[10] = {}; for (int i = 0; i < exps; ++i) { int counting = distribution(generator); if (counting < 10) ++p[counting]; } cout << "Negative binomial distribution with " << "( k = 4, p = 0.5 ) :" << endl; // Printing the sequence stored in an array p for (int i = 0; i < 10; ++i) cout << i << ": " << string(p[i] * numberstars / exps, '*') << endl; return 0; }
Producción :
Negative binomial distribution with ( k = 4, p = 0.5 ) : 0: ***** 1: ************ 2: **************** 3: *************** 4: ************* 5: ********** 6: ******** 7: ***** 8: *** 9: **
Debajo del programa con parámetro de distribución de 1 y 20%
Programa 2:
CPP
// C++ program to illustrate // negative_binomial_distribution #include <bits/stdc++.h> using namespace std; int main() { // number of experiments const int exps = 10000; // maximum number of stars to distribute const int numberstars = 100; // Generator generate numbers based // upon a generator function default_random_engine generator; // Aman watches GOT // At each episode, there's a // 20% chance that john snow will die // after how many time he'll be // turned away before watching 1 episodes? negative_binomial_distribution<int> distribution(1, 0.2); // initializing an array with size 10 int p[10] = {}; for (int i = 0; i < exps; ++i) { int counting = distribution(generator); if (counting < 10) ++p[counting]; } cout << "Negative binomial distribution with " << "( k = 1, p = 0.2 ) :" << endl; // Printing the sequence stored in an array p for (int i = 0; i < 10; ++i) cout << i << ": " << string(p[i] * numberstars / exps, '*') << endl; return 0; }
Producción :
Negative binomial distribution with ( k = 1, p = 0.2 ) : 0: ******************* 1: *************** 2: ************ 3: ********** 4: ******** 5: ****** 6: ***** 7: **** 8: *** 9: **
Publicación traducida automáticamente
Artículo escrito por AmanSrivastava1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA