概率论大作业C语言验证伯努利大数定律以及相对应的强大数定律、棣莫弗-拉普拉斯中心极限定理

验证伯努利大数定律以及相对应的强大数定律、棣莫弗-拉普拉斯中心极限定理

  • 代码如下:
//编程环境:Xcode
//编程语言:C语言
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define N 100
#define pai 3.1415926
//试用仿真试验方法,验证伯努利场合下,伯努利大数定律以及相对应的强大数定律、棣莫弗-拉普拉斯中心极限定理
//设事件A表示N个数中满足a>N/2,即P=1/2
int main ()
{
    srand((unsigned)time(NULL));
    double a[N];
    double p=0.5;
    double u=0,sum=0;
    double e1,e2,e3,n0=1,n1=1,n2=1;
    double b0,b1,b2,b3,b4,P_u,x_u;
    int i;
    for(i=0;i<N;i++)
    {
    a[i]=rand()%N;
    }
//伯努利大数定律
    for(i=0;i<N;i++){
        if (a[i]>N/2)
        {
        u++;
        }
    }
    e1=fabs(u/N-p);
//伯努利大数定律对应的强大数定律__切比雪夫大数定律
    for(i=0;i<N;i++){
       sum+=a[i];
    }
    e2=fabs(sum/N-N*p);
//棣莫弗-拉普拉斯中心极限定理
for(i=1;i<=N;i++){n0*=i;}//表示n的阶层
for(i=1;i<=u;i++){n1=n1*i;}//n1表示U的阶层
for(i=1;i<=(N-u);i++){n2=n2*i;}//n2表示n-u的阶层
P_u=n0/(n1*n2)/pow(2,N);
x_u=u-N*p/pow(N/4,0.5);
//计算正太分布表达式
b0=x_u;
b1=b0*b0*(-0.5);
b2=exp(b1);
b3=1/(pow(2*pai,0.5));
b4=b2*b3;
//正太分布公式
    e3=fabs(P_u-b4/pow(N/4,0.5));
printf("伯努利大数定理,切比雪夫大数定理,和棣莫弗-拉普拉斯中心极限定理的误差分别e1=%lf,e2=%lf,e3=%lf",e1,e2,e3);
    return 0;
}
  • 结果:
伯努利大数定理,切比雪夫大数定理,和棣莫弗-拉普拉斯中心极限定理的误差分别为
e1=0.040000,
e2=1.080000,
e3=0.057958
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值