rendered paste body// $Id: moments.java,v 1.2 2001/01/05 01:35:56 doug Exp $// http://www.bagley.org/~doug/shootout///** Modified to generate data elements instead of load from disk//** Modified to use a "native" array instead of Vector() //** Abbreviated output//** Added Timer() codeimport java.io.*;import java.util.*;import java.text.*;import java.lang.Math;public class moments { public static void main(String[] args) { int N = Integer.parseInt(args[0]); long start = System.currentTimeMillis(); while(N-- > 0) { String line; //Vector nums = new Vector(); //double num, sum = 0.0; double sum = 0.0; double mean = 0.0; double average_deviation = 0.0; double standard_deviation = 0.0; double variance = 0.0; double skew = 0.0; double kurtosis = 0.0; double median = 0.0; double deviation = 0.0; int i, n, mid = 0; final int max = 100000; n = 0; double [] nums = new double[max]; while(n < max) { //sum += (num = n++); //nums.add(new Double(num)); sum += (nums[n] = n++); } //n = nums.size(); mean = sum/n; for (i=0; i<n; i++) { //deviation = ((Double)nums.get(i)).doubleValue() - mean; deviation = nums[i] - mean; average_deviation += Math.abs(deviation); variance += Math.pow(deviation,2); skew += Math.pow(deviation,3); kurtosis += Math.pow(deviation,4); } average_deviation /= n; variance /= (n - 1); standard_deviation = Math.sqrt(variance); if (variance != 0.0) { skew /= (n * variance * standard_deviation); kurtosis = kurtosis/(n * variance * variance) - 3.0; } //Collections.sort(nums); mid = n/2; //median = (n % 2 != 0) ? // ((Double)nums.get(mid)).doubleValue() : // (((Double)nums.get(mid)).doubleValue() + // ((Double)nums.get(mid-1)).doubleValue())/2; median = (n % 2 != 0) ? nums[mid] : (nums[mid] + nums[mid-1])/2; if(N == 1) { NumberFormat nf = NumberFormat.getInstance(); //nf.setMaximumFractionDigits(13); nf.setGroupingUsed(false); //nf.setMaximumFractionDigits(6); //nf.setMinimumFractionDigits(6); nf.setMaximumFractionDigits(2); nf.setMinimumFractionDigits(2); //System.out.println("n: " + n); //System.out.println("median: " + nf.format(median)); //System.out.println("mean: " + nf.format(mean)); //System.out.println("average_deviation: " + nf.format(average_deviation)); //System.out.println("standard_deviation: " + nf.format(standard_deviation)); //System.out.println("variance: " + nf.format(variance)); //System.out.println("skew: " + nf.format(skew)); //System.out.println("kurtosis: " + nf.format(kurtosis)); System.out.println(n + "," + nf.format(median) + "," + nf.format(mean) + "," + nf.format(average_deviation) + "," + nf.format(standard_deviation) + "," + nf.format(variance) + "," + nf.format(skew) + "," + nf.format(kurtosis)); } } long end = System.currentTimeMillis(); System.out.println("Time: " + (end - start) + " ms"); }}