negative_binomial_distribution в C ++ с примерами
Эта функция определена в заголовке random Random. Отрицательное биномиальное распределение - это распределение случайных чисел, которое дает целые числа в соответствии с отрицательным биномиальным дискретным распределением (также известным как распределение Паскаля), которое описывается следующей функцией вероятностных масс.
Значение представляет количество неудач в серии независимых испытаний типа да / нет (каждое успешное с вероятностью p) до того, как произойдет ровно k успехов.
Синтаксис:
шаблон (класс IntType = int) класс negative_binomial_distribution
Параметр шаблона:
IntType: тип результата, созданный генератором.
Типы участников
Тип и определение члена
result_type | IntType |
param_type | Типа , возвращаемый пары членов |
Функции-члены: общедоступная функция-член
Параметры распространения: общедоступная функция-член
Функции, не являющиеся членами: шаблоны функций
Программа ниже, чтобы проиллюстрировать вышеуказанный шаблон
// 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; } |
Выход :
Отрицательное биномиальное распределение с (k = 4, p = 0,5): 0: ***** 1: ************ 2: **************** 3: *************** 4: ************* 5: ********** 6: ******** 7: ***** 8: *** 9: **
Ниже программа с параметром распределения 1 и 20%
Программа 2:
// 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; } |
Выход :
Отрицательное биномиальное распределение с (k = 1, p = 0,2): 0: ******************* 1: *************** 2: ************ 3: ********** 4: ******** 5: ****** 6: ***** 7: **** 8: *** 9: **