C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++の二項確率変数


確率変数 複数の結果を引き起こす可能性のあるプロセスの結果の結果である変数です。たとえば、コインを投げた結果として頭または尻尾を示す変数は確率変数です。

二項確率変数は、イベントの結果の確率が固定されているイベントに値が関連付けられている特殊なタイプの確率変数です。

それを特別にする二項確率変数が持つ特定の特性があります。これらは、変数が二項確率変数になるための必須条件です-

  • 結果の総数は固定されています。

  • 証跡の結果は真か偽のどちらかであり、その間には何もありません。

  • 発生の確率は各トレイルで同じです。

  • 2つのトレイルが相互に依存していることはありません。

二項確率変数の確率

結果の成功の確率は、式-

で与えられます。
P (x= k ) = n! / k! (n-k)! * pk * (1-p)n-k

二項確率変数のこの確率に基づいて、サンプル空間での変数の出現数。

E[X] = np

成功の分散は、 Var [X] =np(1-p)で与えられます。

#include <iostream>
#include <cmath>
using namespace std;
int combination(int n, int r){
   if (r > n / 2)
   r = n - r;
   int answer = 1;
   for (int i = 1; i <= r; i++) {
      answer *= (n - r + i);
      answer /= i;
   }
   return answer;
}
float randombinomialProbability(int n, int k, float p){
   return combination(n, k)*pow(p, k)*pow(1 - p, n - k);
}
int main(){
   int n = 10;
   int k = 5;
   float p = 1.0 / 3;
   float binomialRandomVariable = randombinomialProbability(n, k, p);
   cout<<"Probability of "<<k;
   cout<<" heads when a coin is tossed "<< n;
   cout<<" times where probability of each head is "<<p;
   cout<<" is = "<<binomialRandomVariable<<endl;
}
出力
Probability of 5 heads when a coin is tossed 10 times where probability of each head is 0.333333 is = 0.136565

  1. C++でランダムポインタを使用してリストをコピーする

    リンクリストは線形データ構造であり、各ノードには2つのブロックがあり、一方のブロックにはノードの値またはデータが含まれ、もう一方のブロックには次のフィールドのアドレスが含まれます。 各ノードにリスト内の他のノードを指すランダムポインタが含まれるようなリンクリストがあると仮定します。タスクは、元のリストと同じリストを作成することです。ランダムなポインタを持つ元のリストからリストをコピーすることを、リンクリストの「ディープコピー」と呼びます。 例 入力-1 出力: 5-> 2 -> 3 -> 7 ->4 -> 説明: この問題を解決するためのア

  2. C ++の二項ヒープ?

    二項ヒープは、二分ヒープの拡張として定義され、二分ヒープによって提供される他の操作と一緒に、より高速なマージまたは結合操作を提供します。 二項ヒープは、二項ツリーのコレクションとして扱われます。 二項ツリーとは何ですか? 次数kの二項ツリーは、次数k-1の2つの二項ツリーを取得し、一方を左端の子またはその他として扱うことで構築できます。 次数kの二項ツリーには以下のプロパティがあります。 BinomialTreeのノード数は正確に2kです。 。 BinomialTreeの深さはkです。 深さiには正確にkCiノードがあります。ここでi=0、1 、。 。 。 、k。