Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
5
Добавлен:
18.08.2019
Размер:
1.33 Кб
Скачать
#include <stdio.h>
#include <stdlib.h>
#define N 1000//повторы эксперимента для дисперсии
#define n 10//колличество бросков
//рекурентная функция подсчета сочетания
int rec(int e, int k)
{
if(k>e)
return 0;
if((e==k)||(k==0))
return 1;
if(k==1)
return e;
return rec(e-1, k-1)+rec(e-1, k);
}

//генератор псевдослучайных чисел
int XX=200;
int myrand()
{
int m=2017;
int a=214013,c=2531011;
XX = (a*XX+c)%m;
return XX;
}
//бросок монетки
int onethrow()
{
    int X;
    float x;
   x=myrand()/(0x7FF+1.);
//x=rand()/(RAND_MAX+1.);
if(x>0.5)X=1;
else X=0;
return X;
}

int main()
{
float Pk,p=0.5;//вероятность орла или решки
int x[n+1], h,H[n+1];//10 бросков

for(int j=0;j<n+1;j++)
H[j]=0;

FILE *fp = fopen("gyst.txt","w");
FILE *fp1= fopen("Pk.txt","w");


for(int i=0;i<n+1;i++)
    {
        Pk = rec(n,i)*pow(p,i)*pow(1-p,n-i);//массив вероятностей для каждого набора очков при десяти бросках
        printf("Pk %d = %f \n",i,Pk);
        fprintf(fp1,"%f\n", Pk);
    }
printf("\n");
 for(int i=0;i<N;i++)
 {
     h=0;

    for(int j=0;j<n+1;j++)
      h+=onethrow();

    H[h]++;//hystogramm
 }

   for(int j=0;j<n+1;j++)
 printf("H %d = %d \n",j,H[j]);



for(int j=0;j<n+1;j++)
fprintf(fp,"%d\n", H[j]);

fclose(fp);
 fclose(fp1);
return 0;
}
Соседние файлы в папке Binary_destribution