程序中divisor是自由度,20是小樣本判斷的一個(gè)標(biāo)準(zhǔn)。如果是小樣本的話,約束較大,自由度就要減一;如果是大樣本的話,自由度為樣本個(gè)數(shù)。
為香河等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及香河網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、香河網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
這是統(tǒng)計(jì)學(xué)的知識(shí)。
由于沒(méi)有指明數(shù)據(jù)的來(lái)源,下面就從文本文件"data.txt"中取出一些學(xué)生的身高數(shù)據(jù),并計(jì)算平均值,方差和標(biāo)準(zhǔn)差!代碼如下:
#includestdio.h
#include math.h
#define hh printf("\n===================================\n");
void main()
{
FILE *fp;
float a[520],x,avr,fc,bzc,t,sum=0.0;
int i,k=0;
fp=fopen("D:\\data.txt","r");
if(fp==NULL)
printf("文件打開(kāi)失敗!\n");
else
{
printf("身高數(shù)據(jù):\n");
fscanf(fp,"%f",x);
while(x!=0)
{
a[k++]=x;
printf("%.0f ",x);
sum+=x;
fscanf(fp,"%f",x);
}
avr=sum/k;
sum=0;
for(i=0;ik;i++)
sum+=(a[i]-avr)*(a[i]-avr);
fc=sum/(k-1);
bzc=sqrt(fc);hh
printf("? 學(xué)生人數(shù):%d\n",k);
printf("? 身高均值:%.2f\n",avr);
printf("? 身高方差:%.2f\n",fc);
printf("身高標(biāo)準(zhǔn)差:%.2f\n",bzc);
}
hh
fclose(fp);
}
擴(kuò)展資料:
c語(yǔ)言的特點(diǎn)
1、C語(yǔ)言是一個(gè)有結(jié)構(gòu)化程序設(shè)計(jì)、具有變量作用域(variable scope)以及遞歸功能的過(guò)程式語(yǔ)言。
2、C語(yǔ)言傳遞參數(shù)均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。
3、不同的變量類型可以用結(jié)構(gòu)體(struct)組合在一起。
4、只有32個(gè)保留字(reserved keywords),使變量、函數(shù)命名有更多彈性。
5、部份的變量類型可以轉(zhuǎn)換,例如整型和字符型變量。
6、通過(guò)指針(pointer),C語(yǔ)言可以容易的對(duì)存儲(chǔ)器進(jìn)行低級(jí)控制。
7、預(yù)編譯處理(preprocessor)讓C語(yǔ)言的編譯更具有彈性。
//計(jì)算平均數(shù),方差,標(biāo)準(zhǔn)差。
#include?stdio.h
#include?conio.h
#include?stdlib.h
#include?time.h
#include?math.h
#define?N?100
void?TongJi(double?a[],int?n,double?*aver,double?*vari,double?*stdDev){
//對(duì)長(zhǎng)度為n的數(shù)組a進(jìn)行統(tǒng)計(jì),統(tǒng)計(jì)其平均值aver、方差vari、標(biāo)準(zhǔn)差stdDev
int?i;
double?*p,aver2;
*aver=0.0;
for(p=a+(n-1);p=a;--p){
*aver+=*p;//累加各元素
aver2+=(*p)*(*p);//累加各元素的平方
}
*aver/=n;//求平均值
aver2/=n;//求平方的平均值
*vari=aver2-(*aver)*(*aver);//計(jì)算方差
*stdDev=sqrt(*vari);//計(jì)算標(biāo)準(zhǔn)差
}
int?main(){
double?a[N],pj,fc,bzc;
int?i;
srand(time(NULL));
for(i=0;iN;++i){
a[i]=rand()/(RAND_MAX+1.0);?//產(chǎn)生隨機(jī)小數(shù)[0,1)
printf("%lg?",a[i]);
}
TongJi(a,N,pj,fc,bzc);
printf("\nPingJun=%lg,?FangCha=%lg,?BiaoZhunCha=%lg",pj,fc,bzc);
printf("\nFinished!\n");
getch();
return?0;
}
順便做了一個(gè)測(cè)試:產(chǎn)生100個(gè)隨機(jī)小數(shù),得到其平均值大概在0.5左右,方差在0.08左右,標(biāo)準(zhǔn)差在0.28左右。說(shuō)明系統(tǒng)自帶的隨機(jī)數(shù)發(fā)生器還是比較均勻的。
直接上代碼:
#include?stdio.h
#include?conio.h
#include?math.h
double?fangcha(double?x[],?int?n){
//求數(shù)組x(具有n個(gè)元素)的方差:S=(x^2-x)^0.5
int?i;
double?xaver=0.0,?x2aver=0.0;
for(i=0;in;++i){
xaver+=x[i];?x2aver+=x[i]*x[i];
}
xaver/=n;?x2aver/=n;?//求x的平均、x^2的平均
return?sqrt(x2aver-xaver*xaver);
}
int?main(){
double?x[5];
int?i;
printf("Input?5?datas:\n");
for(i=0;i5;++i){
scanf("%lf",x[i]);
}
printf("\nFangCha?S=%.4lf",fangcha(x,5));
printf("\nFinished!\n");
getch();
return?0;
}
希望能幫助到你。