[英]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.