Dim MAX As Single,MIN As Single
MAX = A(1)
MIN = A(1)
For i = 1 To 数组个数
If A(i)>MAX Then MAX=A(i)
If A(i)<MIN Then MIN=A(i)
平均数 = 平均数 + A(i)
Next i
平均数 = 平均数/数组个数
极差 = MAX - MIN
For i = 1 To 数组个数
方差 = 方差+(A(i)-平均数)^2
平均差 = 平均差+Abs(A(i)-平均数)
Next i
方差=方差/数组个数
平均差=平均差/数组个数
直接上代码:
#include <stdio.h>#include <conio.h>
#include <math.h>
double fangcha(double x[], int n){
//求数组x(具有n个元素)的方差:S=(<x^2>-<x>)^0.5
int i
double xaver=0.0, x2aver=0.0
for(i=0i<n++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=0i<5++i){
scanf("%lf",&x[i])
}
printf("\nFangCha S=%.4lf",fangcha(x,5))
printf("\nFinished!\n")
getch()
return 0
}
希望能帮助到你。
1。求每一个数与这个样本数列的数学平均值之间的差,称均差;
2。计算每一个差的平方,称方差;
3。求它们的总和,再除以这个样本数列的项数得到均方差;
4。再开根号得到标准方差!
/* 方差和 */double num[10] //用10长度的数组举例
double sum = 0 //保存一下10个数的和
double pow2_sum = 0 //临时保存方差和
double __average //临时保存均方差
double ans //均方差
for(int i=0 i<10 i++){
sum += num[i]
}
for(int i=0 i<10 i++){
pow2_sum += pow(((sum/10)-num[i]), 2) //math.h平方函数求方差和
}
/* 求均方差 */
__average = pow2_sum/10
/* 标准方差 */
ans = sqrt(__average)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)