数组,统计和计算均值,中位数,模式,平均值和sqrt

时间:2015-03-03 01:39:35

标签: java arrays median

我需要在名为ArrayStatistics的类中实现四个静态方法。四种方法中的每一种将分别计算阵列中值的平均值,中值,模式和总体标准偏差。

这是我第一次使用Java,并且无法弄清楚接下来应该做什么。我得到了一些测试值,你猜对了,测试我的程序。

public class ArrayStatistics {

     public static void main(String[] args) {
         final int[] arr;
         int[] testValues = new int[] { 10, 20, 30, 40 };
         meanValue = a;
         meadianValue = b;
         modeValue = c;
         sqrtDevValue = d;
         average = (sum / count);

         System.out.println("Average is " );
    }

    static double[] mean(int[] data) {
        for(int x = 1; x <=counter; x++) {
            input = NumScanner.nextInt();
            sum = sum + inputNum;
            System.out.println();
        }
        return a;
    }

    static double[] median(int[] data) {
        // ...    
    }

    public double getMedian(double[] numberList) {
        int factor = numberList.length - 1;
        double[] first = new double[(double) factor / 2];
        double[] last = new double[first.length];
        double[] middleNumbers = new double[1];

        for (int i = 0; i < first.length; i++) {
            first[i] = numbersList[i];
        }
        for (int i = numberList.length; i > last.length; i--) {
            last[i] = numbersList[i];
        }
        for (int i = 0; i <= numberList.length; i++) {
            if (numberList[i] != first[i] || numberList[i] != last[i]) middleNumbers[i] = numberList[i];
        }
        if (numberList.length % 2 == 0) {
            double total = middleNumbers[0] + middleNumbers[1];
            return total / 2;
        } else {
            return b;
        }
    }

    static double[] mode(int[] data) {
        public double getMode(double[] numberList) {
        HashMap<Double,Double> freqs = new HashMap<Double,Double>();

        for (double d: numberList) {
            Double freq = freqs.get(d);
            freqs.put(d, (freq == null ? 1 : freq + 1));   
        }
        double mode = 0;
        double maxFreq = 0;    

        for (Map.Entry<Double,Doubler> entry : freqs.entrySet()) {     
            double freq = entry.getValue();
            if (freq > maxFreq) {
                maxFreq = freq;
                mode = entry.getKey();
            }
        }        
        return c;
    }

    static double[] sqrt(int[] sqrtDev) {
        return d;
    }
}

1 个答案:

答案 0 :(得分:0)

这很简单。

public double mean(ArrayList list) {
 double ans=0;
 for(int i=0; i<list.size(); i++) {
 ans+=list.get(i);   }
 return ans/list.size()
 }

` 位数:

public void median(ArrayList list) {
     if(list.size()%==2) return (list.get(list.size()/2)+list.get(list.size()+1))/2;
 else return list.get((list.size()/2)+1)
    }

对于模式,只需保持每个数字出现的频率,非常容易。

对于标准偏差,找到均值并使用此处给出的公式:https://www.mathsisfun.com/data/standard-deviation-formulas.html