Java 阵列列表的标准偏差
这段代码应该在Java 阵列列表的标准偏差,java,arraylist,Java,Arraylist,这段代码应该在ArrayList中查找随机整数的最大值。然而,我的标准偏差代码并没有显示正确的结果。它显示了另一个预期的数字 我做错了什么 import java.io.*; import java.util.*; public class Assignment4 { public static void main(String[] args) { ArrayList<Integer> values = new ArrayList<Intege
ArrayList
中查找随机整数的最大值。然而,我的标准偏差代码并没有显示正确的结果。它显示了另一个预期的数字
我做错了什么
import java.io.*;
import java.util.*;
public class Assignment4 {
public static void main(String[] args)
{
ArrayList<Integer> values = new ArrayList<Integer>();
int count = 0;
int total = 0;
Random r = new Random();
for (int i = 1; i <= 10; i++) {
values.add(r.nextInt(90)+ 1);
System.out.println(values);
}
System.out.println(mean(values));
System.out.println(sd(values));
}
public static double mean (ArrayList<Integer> table)
{
int total = 0;
for ( int i= 0;i < table.size(); i++)
{
int currentNum = table.get(i);
total+= currentNum;
}
return total/table.size();
}
public static double sd (ArrayList<Integer> table)
{
double mean= mean(table);
double temp =0;
for ( int i= 0; i <table.size(); i++)
{
temp= Math.pow(i-mean, 2);
}
return Math.sqrt(mean( table));
}
public static void selectionSort(ArrayList<Integer> table)
{
int count = table.size();
for(int pos = 0; pos < count - 1; pos++)
{
int locMin = pos;
for(int i = pos + 1; i < count; i++)
{
if(table.get(i) < table.get(locMin))
locMin = i;
}
int temp = table.get(pos);
table.set(pos, table.get(locMin) );
table.set(locMin, temp);
}
}
}
import java.io.*;
导入java.util.*;
公共课堂作业4{
公共静态void main(字符串[]args)
{
ArrayList值=新的ArrayList();
整数计数=0;
int-total=0;
随机r=新随机();
对于(int i=1;i,这里有一个标准偏差程序示例:
// Beginning of class Deviation
public class Deviation
{
// Beginning of method main
public static void main(String[] args)
{
// Declare and create an array for 10 numbers
double[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// Print numbers
printArray(numbers);
// Display mean and deviation
System.out.println("The mean is " + findMean(numbers));
System.out.println("The standard deviation is " +
findDeviation(numbers));
} // End of main
/* Method for computing deviation of double values */
// Beginning of double findDeviation(double[])
public static double findDeviation(double[] nums)
{
double mean = findMean(nums);
double squareSum = 0;
for (int i = 0; i < nums.length; i++)
{
squareSum += Math.pow(nums[i] - mean, 2);
}
return Math.sqrt((squareSum) / (nums.length - 1));
} // End of double findDeviation(double[])
/* Method for computing deviation of int values */
// Beginning of double findDeviation(int[])
public static double findDeviation(int[] nums)
{
double mean = findMean(nums);
double squareSum = 0;
for (int i = 0; i < nums.length; i++)
{
squareSum += Math.pow(nums[i] - mean, 2);
}
return Math.sqrt((squareSum) / (nums.length - 1));
} // End of double findDeviation(int[])
/** Method for computing mean of an array of double values */
// Beginning of double findMean(double[])
public static double findMean(double[] nums)
{
double sum = 0;
for (int i = 0; i < nums.length; i++)
{
sum += nums[i];
}
return sum / nums.length;
} // End of double getMean(double[])
/** Method for computing mean of an array of int values */
// Beginning of double findMean(int[])
public static double findMean(int[] nums)
{
double sum = 0;
for (int i = 0; i < nums.length; i++)
{
sum += nums[i];
}
return sum / nums.length;
} // End of double getMean(int[])
/* Method for printing array */
// Beginning of void printArray(double[])
public static void printArray(double[] nums)
{
for (int i = 0; i < nums.length; i++)
{
System.out.print(nums[i] + " ");
}
System.out.println();
} // End of void printArray(double[])
} // End of class Deviation
//类偏差的开始
公共阶级偏离
{
//主方法的开始
公共静态void main(字符串[]args)
{
//声明并创建一个包含10个数字的数组
双[]数={1,2,3,4,5,6,7,8,9,10};
//打印号码
打印阵列(数字);
//显示平均值和偏差
System.out.println(“平均值为”+findMean(数字));
System.out.println(“标准偏差为”+
已发现的偏差(数字);
}//主管道末端
/*双值偏差的计算方法*/
//双findDeviation的开始(双[])
公共静态双findDeviation(双[]nums)
{
双平均值=findMean(nums);
双平方和=0;
对于(int i=0;i
您的标准偏差计算有错误:
这是查找标准偏差的算法:
Step 1: Find the mean.
Step 2: For each data point, find the square of its distance to the mean.
Step 3: Sum the values from Step 2.
Step 4: Divide by the number of data points.
Step 5: Take the square root.
因此,您的代码应该如下所示:
public static double sd (ArrayList<Integer> table)
{
// Step 1:
double mean = mean(table);
double temp = 0;
for (int i = 0; i < table.size(); i++)
{
int val = table.get(i);
// Step 2:
double squrDiffToMean = Math.pow(val - mean, 2);
// Step 3:
temp += squrDiffToMean;
}
// Step 4:
double meanOfDiffs = (double) temp / (double) (table.size());
// Step 5:
return Math.sqrt(meanOfDiffs);
}
应该是:
return (double) total / (double) table.size();
解释“标准飞行”,显示预期,显示结果。@MouseEvent我猜是关于:
return (double) total / (double) table.size();