Java语言怎么计算多个整数的几何平均数和算术平均数?能不能只使用一次遍历的操作就计算全部的几何和算术平均数的呢
效果如图
代码如下
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 ArithmeticAverage {
public static double calculateArithmeticAverage(int[] numbers) {
int sum = 0;
for (int num : numbers) {
sum += num;
}
double average = (double) sum / numbers.length;
return average;
}
}
// 示例用法
int[] numbers = {1, 2, 3, 4, 5};
double arithmeticAverage = ArithmeticAverage.calculateArithmeticAverage(numbers);
System.out.println("算术平均数: " + arithmeticAverage);
几何平均数是指一组数据的所有值的乘积的n次方根,其中n为数据的个数。对于多个整数的几何平均数,可以按照以下步骤进行计算:
以下是Java代码示例:
public class GeometricAverage {
public static double calculateGeometricAverage(int[] numbers) {
long product = 1;
for (int num : numbers) {
product *= num;
}
double average = Math.pow(product, 1.0 / numbers.length);
return average;
}
}
// 示例用法
int[] numbers = {1, 2, 3, 4, 5};
double geometricAverage = GeometricAverage.calculateGeometricAverage(numbers);
System.out.println("几何平均数: " + geometricAverage);
以上代码示例分别定义了两个静态方法calculateArithmeticAverage
和calculateGeometricAverage
,分别用于计算算术平均数和几何平均数。在示例用法中,我们可以根据需要提供不同的整数数组来计算对应的平均数。
可以只使用一次遍历的操作计算多个整数的几何平均数和算术平均数。
以下是一种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 方法来计算几何和算术平均数。这两个方法都只使用了一次遍历的操作,分别计算了乘积和总和,并据此计算出几何和算术平均数。