Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

데이터 구조의 기하 분포

<시간/>

기하학적 분포는 n =0, 1, 2, …에 대한 이산 확률 분포입니다. 확률 밀도 함수가 있습니다.

$$P\l그룹 n\r그룹=p\l그룹1-p\r그룹^{n}$$

분포 함수는 -

$$D\l그룹 n\rgroup=\displaystyle\sum\limits_{i=0}^n P\l그룹 i \rgroup=1-q^{n+1}$$

예시

#include <iostream>
#include <random>
using namespace std;

int main(){
   const int nrolls = 10000; // number of rolls
   const int nstars = 100; // maximum number of stars to distribute
   default_random_engine generator;
   geometric_distribution<int> distribution(0.3);
   int p[10]={};
   for (int i=0; i<nrolls; ++i) {
      int number = distribution(generator);
      if (number<10)
      p[number]++;
   }
   cout << "Geometric_distribution (0.3):" << endl;
   for (int i=0; i<10; ++i)
      cout << i << ": " << string(p[i]*nstars/nrolls,'*') << endl;
}

출력

0: *****************************
1: ********************
2: ***************
3: **********
4: *******
5: ****
6: ***
7: **
8: *
9: *