`

常用统计函数Java版[转]

阅读更多

 

TagJava    统计函数    方差    标准差                                          

 

public class TestStatistics {

 public static void main(String[] args) {
              double [] testData=new double[]{1,2,3,4,5,6,7,8,9};
              System.out.println("最大值:"+getMax(testData));
              System.out.println("最小值:"+getMin(testData));
              System.out.println("计数:"+getCount(testData));
              System.out.println("求和:"+getSum(testData));
              System.out.println("求平均:"+getAverage(testData));
              System.out.println("方差:"+getVariance(testData));
              System.out.println("标准差:"+getStandardDiviation(testData));
             
 }

 /**
  * 求给定双精度数组中值的最大值
  *
  * @param inputData
  *            输入数据数组
  * @return 运算结果,如果输入值不合法,返回为-1
  */
 public static double getMax(double[] inputData) {
  if (inputData == null || inputData.length == 0)
   return -1;
  int len = inputData.length;
  double max = inputData[0];
  for (int i = 0; i < len; i++) {
   if (max < inputData[i])
    max = inputData[i];
  }
  return max;
 }

 /**
  * 求求给定双精度数组中值的最小值
  *
  * @param inputData
  *            输入数据数组
  * @return 运算结果,如果输入值不合法,返回为-1
  */
 public static double getMin(double[] inputData) {
  if (inputData == null || inputData.length == 0)
   return -1;
  int len = inputData.length;
  double min = inputData[0];
  for (int i = 0; i < len; i++) {
   if (min > inputData[i])
    min = inputData[i];
  }
  return min;
 }

 /**
  * 求给定双精度数组中值的和
  *
  * @param inputData
  *            输入数据数组
  * @return 运算结果
  */
 public static double getSum(double[] inputData) {
  if (inputData == null || inputData.length == 0)
   return -1;
  int len = inputData.length;
  double sum = 0;
  for (int i = 0; i < len; i++) {
   sum = sum + inputData[i];
  }

  return sum;

 }

 /**
  * 求给定双精度数组中值的数目
  *
  * @param input
  *            Data 输入数据数组
  * @return 运算结果
  */
 public static int getCount(double[] inputData) {
  if (inputData == null)
   return -1;

  return inputData.length;
 }

 /**
  * 求给定双精度数组中值的平均值
  *
  * @param inputData
  *            输入数据数组
  * @return 运算结果
  */
 public static double getAverage(double[] inputData) {
  if (inputData == null || inputData.length == 0)
   return -1;
  int len = inputData.length;
  double result;
  result = getSum(inputData) / len;
  
  return result;
 }

 /**
  * 求给定双精度数组中值的平方和
  *
  * @param inputData
  *            输入数据数组
  * @return 运算结果
  */
 public static double getSquareSum(double[] inputData) {
  if(inputData==null||inputData.length==0)
      return -1;
     int len=inputData.length;
  double sqrsum = 0.0;
  for (int i = 0; i <len; i++) {
   sqrsum = sqrsum + inputData[i] * inputData[i];
  }

  
  return sqrsum;
 }

 /**
  * 求给定双精度数组中值的方差
  *
  * @param inputData
  *            输入数据数组
  * @return 运算结果
  */
 public static double getVariance(double[] inputData) {
  int count = getCount(inputData);
  double sqrsum = getSquareSum(inputData);
  double average = getAverage(inputData);
  double result;
  result = (sqrsum - count * average * average) / count;

     return result;
 }

 /**
  * 求给定双精度数组中值的标准差
  *
  * @param inputData
  *            输入数据数组
  * @return 运算结果
  */
 public static double getStandardDiviation(double[] inputData) {
  double result;
  //绝对值化很重要
  result = Math.sqrt(Math.abs(getVariance(inputData)));
  
  return result;

 }
}

 
分享到:
评论

相关推荐

    JAVA上百实例源码以及开源项目源代码

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    JAVA上百实例源码以及开源项目

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    Java常用数值算法集

    Java线性代数方程组解法,插值,积分,特殊函数,函数逼近,随机数,排序,特征值,数据拟合,方程求根和非线性方程组解法,函数极值和最优化,傅里叶变换谱方法,数据统计描述,解常微分方程组,偏微分方程解法等。

    java开源包8

    淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的...

    java开源包11

    淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的...

    java开源包4

    淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的...

    java开源包6

    淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的...

    java开源包101

    淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的...

    java开源包9

    淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的...

    Java 常用数值算法集

    本书共有数值计算中常用的Java方法近200个,内容包括:解线性代数方程组、插值、数值积分、特殊函数、函数逼近、随机数、排序、特征值问题、数据拟合、方程求根和非线性方程组求解、函数的极值和最优化、傅里叶变换谱...

    java开源包5

    淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的...

    java开源包10

    淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的...

    java开源包3

    淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的...

    java开源包1

    淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的...

    java 课程 实验

    2. 调用java.lang.Math的成员函数“public static double random()”运算下面表达式1000次,(int) (Math.random()*20+0.5),统计其中生成的整数0、1、2、……、20的个数分别是多少,并输出统计结果。 3. 编写一个方法...

    java开源包2

    淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的...

    java开源包7

    淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的...

    Java资源包01

    淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不需要修改主类就可以添加新的API支持) 注入型解释器(依据不同的返回格式注入相应的解释器) 集中管理请求参数与参数映射 以运行时异常的方式来管理错误的...

    Java面试宝典2010版

    3、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉...

    java面试题大全(2012版)

    2012版最全面试题大全目录: 一. Java基础部分 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环?...

Global site tag (gtag.js) - Google Analytics