首页 > 用户发贴区 > 编程问题提问区 > 有没有好的算法
2009
09-27

问题如下:
     
/* 标准文档模板 */



#include “Stdio.h”

#include “Conio.h”

#include “math.h”

float sum(float a[],int n)

/* 求和函数 */

{

float s=0;

int d;

for(d=0;d<n;++d)

{

s=s+a[d];

}

return s;

}

float std(float a[],int n)



/* 方差函数 */

{

float s=0;

int d;

for(d=0;d<n;++d)

{

s=s+pow((a[d]-sum(a,n)/n),2);

}

return sqrt(s/(n-1));

}

float bit,bim,bib;

int main(void)

{



float bbi[10], cls[35]={6897,6964,6982,7082,7066,7112,7068,6906,6856,7022,7098,

7076,7072,6982,7122,7182,7116,7350,7394,7614,7562,7610,7542,

7580,7362,7438,7294,7462,7370,7622,7762,7686,7652,7630,7418};

int n;

for (n=1;n<10;++n)

{

bbi[n]=((sum(cls,(3+n))-sum(cls,n))/3

+(sum(cls,(6+n))-sum(cls,n))/6

+(sum(cls,(12+n))-sum(cls,n))/12

+(sum(cls,(24+n))-sum(cls,n))/24)/4;

}

bbi[0]=(sum(cls,3)/3+sum(cls,6)/6+sum(cls,12)/12+sum(cls,24)/24)/4;

bim=bbi[0];

bit=bim+3*std(bbi,10);

bib=bim-3*std(bbi,10);



printf(“\n\nbit %.2f   bim %.2f  bib %.2f\n\n\n”,bit,bim,bib);

getch();

return 0;

}





已知此程序正确。运行后可以输出bit,bim,bib三个数据,要求是求一种算法,且这种算法算出的数值代替以上程序中的cls[0]运行后,输出的结果bit或bib其中的一个与这个值相同。

我开始用由小到大循环的方法,但不行,我怀疑此种方法的可行性。
后来我用一元二次方程求解法,算了五六天还是不对,也不知是二次方程的系数没算对,也不知是电脑计算过程中数据因溢出或丢失而出错。


留下一个回复