Добавил:
yermolenkoigor9
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Stohastic / Stohastic / Binary_destribution / main
.c#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