Java语言怎么计算多个整数的几何平均数和算术平均数

Java语言怎么计算多个整数的几何平均数和算术平均数?能不能只使用一次遍历的操作就计算全部的几何和算术平均数的呢

效果如图

img

代码如下

import java.util.ArrayList;
import java.util.List;

public class AverageCalculator {

    public static double calculateArithmeticAverage(List<Integer> numbers) {
        double sum = 0;
        for (int num : numbers) {
            sum += num;
        }
        return sum / numbers.size();
    }

    public static double calculateGeometricAverage(List<Integer> numbers) {
        double product = 1;
        for (int num : numbers) {
            product *= num;
        }
        return Math.pow(product, 1.0 / numbers.size());
    }

    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(2);
        numbers.add(4);
        numbers.add(6);
        numbers.add(8);

        double arithmeticAverage = calculateArithmeticAverage(numbers);
        double geometricAverage = calculateGeometricAverage(numbers);

        System.out.println("算术平均 " + arithmeticAverage);
        System.out.println("几何平均 " + geometricAverage);
    }
}


思路分析:

计算算术平均数思路.

初始化一个变量 sum 为 0。
对于每个整数 num,累加到 sum 中。
将 sum 除以整数的个数,得到算术平均数。

计算几何平均数思路

初始化一个变量 product 为 1。
对于每个整数 num,将其乘以 product。
将 product 的 n 次方根(n 为整数的个数)作为几何平均数。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

可以只使用一次遍历的操作计算多个整数的几何平均数和算术平均数。
以下是一种Java语言的实现方法:

public class GeometricMean {  
           public static void main(String[] args) {  
        int[] nums = {2, 4, 8, 16, 32};  
        double geometricMean = calculateGeometricMean(nums);  
        double arithmeticMean = calculateArithmeticMean(nums);  
                   System.out.println("Geometric Mean: " + geometricMean);  
        System.out.println(" Arithmetic Mean: " + arithmeticMean);  
    }  
           public static double calculateGeometricMean(int[] nums) {  
        double product = 1.0;  
        for (int num : nums) {  
            product *= num;  
        }  
        return Math.pow(product, 1.0 / nums.length);  
    }  
           public static double calculateArithmeticMean(int[] nums) {  
        double sum = 0.0;  
        for (int num : nums) {  
            sum += num;  
        }  
        return sum / nums.length;  
    }  
}

这个程序首先定义了一个整数数组 nums,然后分别调用了 calculateGeometricMean 和 calculateArithmeticMean 方法来计算几何和算术平均数。这两个方法都只使用了一次遍历的操作,分别计算了乘积和总和,并据此计算出几何和算术平均数。