c++编写正态分布表问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 04:47:26
1.请高手用c++编写个正态分布表(0-3.9)
2.用数组 40行10列 表示下表
0.00~3.39
并且输出

2题源代码有其一即可。

所谓的正态分布表都是标准正态分布表(N(0,1)),通过查找实数x的位置,从而得到P(Z<=x)。表的纵向代表x的整数部分和小数点后第一位,横向代表x的小数点后第二位,然后就找到了x的位置。

#include<cmath>

// 标准正态分布密度函数
double ndf(double t)
{
return 0.398942280401433*exp(-t*t/2);
}

//计算标准正态分布
double nc(double x)
{
double result;
if (x<-7.)
result = ndf(x)/sqrt(1.+x*x);
else if (x>7.)
result = 1. - nc(-x);
else
{
result = 0.2316419;
static double a[5] = {0.31938153,-0.356563782,1.781477937,-1.821255978,1.330274429};
result=1./(1+result*fabs(x));
result=1-ndf(x)*(result*(a[0]+result*(a[1]+result*(a[2]+result*(a[3]+result*a[4])))));
if (x<=0.) result=1.-result;
}
return result;
}

很简单啊

biaoji