我自制的统计学类
public class statis{
}
主要的有
public static double 几何平均数(double[] v);
public static double 平方平均数(double[] v);
public static double 总体方差(double[] v);
public static double 总体标准差(double[] v);
public static double 样本方差(double[] v);
public static double 样本标准差(double[] v);
public static double 算数平均数(double[] v);
public static double 调和平均数(double[] v);
其中几何平均数总是得到1,为什么?
public static double 几何平均数(double[]v){
double ji=1;for(long t=0L;t<v.LongLength;t++){ji *=v[t];}return Math.Pow(ji,1/v.LongLength);}
答案是数据类型错了。在Math.Pow(ji,1/v.LongLength);1除以v的长,1是 int类型,v.LongLength是long,int/long结果还是int类型,只有0,x只要不等于0,x的0次幂=1。只要把1/v.LongLength,1之后加个d,1就是double,小数就有了