用随机模拟生成一组数据,编写函数.在求出其均值基础上,计算各数据与均值之差的平方的均值
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 02:08:12
用随机模拟生成一组数据,编写函数.在求出其均值基础上,计算各数据与均值之差的平方的均值
用随机模拟生成一组数据,编写函数.在求出其均值基础上,计算各数据与均值之差的平方的均值
用随机模拟生成一组数据,编写函数.在求出其均值基础上,计算各数据与均值之差的平方的均值
我的思路是实现一个简单数学函数类,封装一些基本操作,问题分解如下:
1、求和sum;
2、求平均值average;
3、求数据域平均数差值平方的平均值det;
代码如下:
import java.util.Random;
public class SimpleMath {
/**
* 查找数组中最大值
* @param arr 数组
* @return 数组中的最大值
*/
public static int max(int[] arr){
int max = arr[0];
for(int i = 1; i < arr.length; i++){
if(max < arr[i]){
max = arr[i];
}
}
return max;
}
/**
* 求数组中元素的和
* @param arr 数组
* @return 元素的和
*/
public static int sum(int[] arr){
int sum = 0;
for(int i = 0; i < arr.length; i++){
sum += arr[i];
}
return sum;
}
/**
* 数组中元素的平均值
* @param arr 数组
* @return 平均值
*/
public static int average(int[] arr){
if(arr.length == 0){
return 0;
}
return sum(arr)/arr.length;
}
public static double det(int[] arr){
int avg = average(arr);
double det = 0;
for(int index = 0; index < arr.length;index++){
det += Math.sqrt(arr[index] - avg);
}
return det/arr.length;
}
/**
* 数组中查找元素的第一次出现位置
* @param arr 数组
* @param data 要查找的元素
* @return 在数组中的位置,以0开始索引
*/
public static int find(int[] arr,int data){
for(int index = 0; index < arr.length; index++){
if(arr[index] == data){
return index;
}
}
return -1;
}
public static void main(String[] args){
Random r = new Random();
//在此测试计算结果
int[] arr = new int[5];
for(int i = 0 ; i < arr.length; i++){
arr[i] = r.nextInt();
}
System.out.println("输出数组元素:");
for(int i = 0 ; i < arr.length; i++){
System.out.println(arr[i]);
}
System.out.println("最大值:" + SimpleMath.max(arr));
System.out.println("平均值:" + SimpleMath.average(arr));
System.out.println("arr[3]=" + arr[3] + ",查找在第" + SimpleMath.find(arr,arr[3]));
}
}