java - 查找不包括最小值和最大值的数组的修剪平均值
问题描述
正在寻找一个数组的修剪平均值,但我对如何使用一种方法来实现它感到困惑。请拍摄有关如何使用方法实施和获得实际修剪平均值的任何想法。这就是我目前所拥有的一切。蒂亚!
public static void main(String[] args) {
// Program 1: Average, Min, Max, Trimmed Average of Array
Scanner in = new Scanner(System.in);
int array[] = new int[] {88,48,96,85,97,68,97};
// Calling getMax() method for getting max value
int max = getMax(array);
System.out.println("Maximum: " + max);
// Calling getMin() method for getting min value
int min = getMin(array);
System.out.println("Minimum: " + min);
// calling getAvg() method for getting avg value
double avg = getAvg(array);
System.out.println("Average: " + avg);
// calling getMean() method for getting trimmed mean value
double mean = getTrim(array);
System.out.println("Trimmed mean: " + mean);
}
// Method for getting the maximum value
public static int getMax(int[] inputArray) {
int maxValue = inputArray[0];
for (int i = 1; i < inputArray.length; i++) {
if (inputArray[i] > maxValue) {
maxValue = inputArray[i];
}
}
return maxValue;
}
// Method for getting the minimum value
public static int getMin(int[] inputArray) {
int minValue = inputArray[0];
for (int i = 1; i < inputArray.length; i++) {
if (inputArray[i] < minValue) {
minValue = inputArray[i];
}
}
return minValue;
}
//Method for getting the avg value
public static double getAvg(int[] inputArray) {
double total = 0;
double avg;
for(int i=0; i<inputArray.length; i++){
total = total + inputArray[i];
}
return avg = total / inputArray.length;
}
//Method for getting the trimmed mean value
public static double getTrim(int[] inputArray) {
}
}
解决方案
尝试这个:
public static double avgExcludingMinMax(int[] inputArray) {
int max = inputArray[0];
int min = inputArray[0];
long sum = 0;
for(int i = 0; i < inputArray.length; i++){
sum = sum + inputArray[i];
if (inputArray[i] > max) {
max = inputArray[i];
}
if (inputArray[i] < min) {
min = inputArray[i];
}
}
return ((double) (sum - max - min)) / (inputArray.length - 2);
}
请注意,如果 inputArray.length == 0; 这将引发异常
如果您想了解有关此类操作的统计背景的更多信息,请查看https://en.wikipedia.org/wiki/Trimmed_estimator和https://en.wikipedia.org/wiki/Winsorizing!
推荐阅读
- c++ - 改进基于 3D 矢量的类的建议
- java - 应用内计费 v3、getPurchases() 和 android.test.purchased
- firebase - 原因:org.jetbrains.plugins.gradle.tooling.util.ModuleComponentIdentifierImpl
- tableau-api - Tableau Week() 函数从星期一而不是星期日开始
- vba - 有没有办法在 vba 中使用变量来识别 MS-Access 报告字段?
- css - CSS 如何让一个 div 容器在 div 的左侧和右侧显示背景图像?
- javascript - 我无法将数据保存到 Mongodb 数据库 MEAN Stack 应用程序
- r - 如何从 2 个数字向量创建 DESeqDataSetFromMatrix?
- haskell - 使用并发的简单 csv 导入
- laravel - Laravel:如何对“一对多”关系进行分页?