【问题标题】:Arrays, Statistics, and calculating mean, median, mode, average and sqrt数组、统计数据以及计算平均值、中位数、众数、平均值和 sqrt
【发布时间】:2015-03-03 01:39:35
【问题描述】:

我需要在一个名为 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;
    }
}

【问题讨论】:

  • 你的问题是......?
  • 将您的问题输入谷歌并添加“教程”
  • 您的代码在当前格式下几乎无法读取。你应该更好地格式化它

标签: java arrays median


【解决方案1】:

这很容易。

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

【讨论】:

    猜你喜欢
    • 2021-05-12
    • 2016-10-04
    • 2013-10-25
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 2020-06-10
    • 2020-10-13
    • 2014-05-14
    相关资源
    最近更新 更多