簡體   English   中英

如何找到陣列的較大一半平均值?

[英]How do I find the larger half average of my array?

我正在處理一個數組的問題,無論數組的順序如何(即它涉及多少個數字以及它們在數組中的順序。我需要找到一種方法來獲取上半部分數字(過去的數字中位數更大而不是順序)包括中位數和平均值。到目前為止,我正在測試這個,但我對 arrays 並不擅長,需要幫助

double[] tempArray = {92.0, 69.0, 35.0, 27.0, 9.0, 83.0, 89.0};]


            array = tempArray;
        }

        double avg = array[4];
        for(double i = 0; i<array.length; i++) {
            if(i >= avg)
            {
                System.out.println(+i);
double[] originalArray = {92.0, 69.0, 35.0, 27.0, 9.0, 83.0, 89.0};

double averageOfUpperHalfValues = findAverageOfUpperHalfValues(originalArray);
System.out.println(averageOfUpperHalfValues);

private double findAverageOfUpperHalfValues(double[] array) {
  double median = findMedian(array);
  double[] upperHalf = filterArrayByMinimumValue(inputs, minimum);
  double averageOfUpperHalf = findAverage(upperHalf);
  return averageOfUpperHalf;
}

private double findMedian(double[] array) {
  // Write some code to find the median value from an array.
}

private double[] filterArrayByMinimumValue(double[] array, double minimum) {
  // Write some code to return a smaller array of just the bigger values.
}

private double findAverage(double[] array) {
  // Write some code to find the average value from an array.
}

你有一個基本的結構。 第一種方法實際上只是列出了所有將要發生的事情。 最后三個方法包含實際的工作原理,分為單獨的活動,因此它們易於閱讀、測試和重用。 確保你對它們進行測試!!!

假設您了解中位數是什么, findMedian(double[] array)應該是相當直截了當的。 提示:在這個方法中,調用另一個方法對數組進行排序。

filterArrayByMinimumValue(double[] array)至少有兩種可能的方法。 1)遍歷輸入數組以計算過濾后數組中有多少項,制作該大小的數組,然后 go 回到原始數組中找到要保留的值並將它們放入新數組中; 返回新數組。 2)創建一個不必事先知道其大小的集合類型,go 通過原始數組只需一次,並將所有要保留的值復制到新集合中,然后將集合轉換為雙精度數組並返回它。

findAverage(double[] array)有一個直接的關注點。 存在三種不同類型的“平均值”:均值、中值和眾數。 澄清你想要哪些(可能是平均值,但要知道差異並確定)。 相應地更改方法名稱。 編寫代碼來完成這項工作。 如果我是你,我想我會先寫這個方法,因為它看起來最簡單。 從心理上的提升開始並不羞恥:)

如果您在找出這三種方法中任何一種方法的代碼時遇到問題,請盡您最大的努力與我們聯系,告訴我們您的困惑所在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM