該函數定義在頭文件中隨機的隨機的。負二項分布是根據負二項式離散分布(也稱為帕斯卡分布)生成整數的隨機數分布,由以下概率質量函數說明。
該值表示在恰好發生 k 次成功之前,一係列獨立的是/否試驗(每次以概率 p 成功)中的失敗次數。
用法:
template( class IntType = int ) class negative_binomial_distribution
模板參數:
整數類型:生成器生成的結果類型。
會員類型
會員類型及定義
result_type | IntType |
param_type | 成員返回的類型參數 |
會員職能:公共成員函數
- constructor():構造負二項分布
- operator():生成隨機數
- reset: 重置分配
- param: 分布參數
- min : 最小值
- max : 最大值
分布參數:公共成員函數
- k :分布參數k
- p :分布參數p
非成員函數:函數模板
- 運算符<<:插入輸出流
- 運算符>>:從輸入流中提取
- 關係運算符:關係運算符
下麵的程序來說明上麵的模板
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;
}
輸出:
Negative binomial distribution with ( k = 4, p = 0.5 ) : 0: ***** 1: ************ 2: **************** 3: *************** 4: ************* 5: ********** 6: ******** 7: ***** 8: *** 9: **
以下程序的分布參數為 1 和 20%
方案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;
}
輸出:
Negative binomial distribution with ( k = 1, p = 0.2 ) : 0: ******************* 1: *************** 2: ************ 3: ********** 4: ******** 5: ****** 6: ***** 7: **** 8: *** 9: **
相關用法
- C++ negate用法及代碼示例
- C++ nearbyint()用法及代碼示例
- C++ nextafter()用法及代碼示例
- C++ nexttoward()用法及代碼示例
- C++ nan()用法及代碼示例
- C++ none_of()用法及代碼示例
- C++ nanf()用法及代碼示例
- C++ nanl()用法及代碼示例
- C++ norm()用法及代碼示例
- C++ cos()用法及代碼示例
- C++ sin()用法及代碼示例
- C++ asin()用法及代碼示例
- C++ atan()用法及代碼示例
- C++ atan2()用法及代碼示例
- C++ acos()用法及代碼示例
- C++ tan()用法及代碼示例
- C++ sinh()用法及代碼示例
- C++ ceil()用法及代碼示例
- C++ tanh()用法及代碼示例
- C++ fmod()用法及代碼示例
- C++ acosh()用法及代碼示例
- C++ asinh()用法及代碼示例
- C++ floor()用法及代碼示例
- C++ atanh()用法及代碼示例
- C++ log()用法及代碼示例
注:本文由純淨天空篩選整理自AmanSrivastava1大神的英文原創作品 negative_binomial_distribution in C++ with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。