繁体   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