我很努力地为我的作业找到标准偏差,我做了所有其他事情,我只是在最后一点挣扎。我的作业问题简而言之是: 我给出了一组学生的任务结果文本文件(必须是任意数字)。唯一给出的数据是学生姓名,球迷及其结果,你需要计算他们的平均成绩和标准差。输出应该是这样的:查找2D阵列的标准偏差
Student Name FAN Part 1 Part 2 Part 3 Part 4 Mark Grade
Adam Adamson adam0001 85.4 79.8 82.4 86.1 82.77% DN
Bethany Bright brig0001 89.7 85.6 84.2 82.9 84.92% DN
Cameron Carlson carl0001 55.45 49.82 60.4 42.27 50.23% P
David Dawson daws0001 72.6 78.49 80.2 65.88 74.46% CR
Evelyn Ellis elli0001 50.2 35.88 48.41 58.37 46.57% FA
Frances Fitz fitz0001 78.9 75.67 82.48 79.1 78.38% DN
Greg Gregson greg0001 24.3 32.88 29.72 28.4 30.05% F
Harriett Hope hope0001 52.2 58.93 61.5 63.44 60.12% P
Ivan Indigo indi0001 88.4 91.23 90.05 92.46 91.08% HD
Jessica Jones jone0001 82.33 89.74 81.3 84.85 85.84% HD
Average 67.948 67.804 70.066 68.377 68.44% CR
StdDev 19.4442
我知道我需要使用的公式,我知道我需要用我只是不知道如何让他们哪些号码。我会告诉你什么,我需要做的,所以希望你会明白我的代码进一步下跌:
the total of the averages divided by 10 = 68.442
sum = (82.77-68.442)^2 + (84.92-68.442)^2 + (50.23-68.442)^2 + ... + (85.84-68.442)^2
StdDev = Math.sqrt(sum/10)
stdDev = 19.4442
我使用3类此,我的主类栏目管理,一个学生类,其中包含与数组学生姓名和风扇(也不是我的问题确实相关,但我想我最好刚才设置的场景),最后是StudentsMarks类,它包含了我StdDec方法如下显示:
public static double StdDev() throws IOException
{
String [][] marks = StudentMarks.StudentMarks();
double mean = 0, average = 0, stdDev = 0;
int row = 0;
for(row = 0; row < marks.length; row++)
{ //ROW,COL
double score1 = Double.parseDouble(marks[row][2]); //parsing the data from the array into a double
double score2 = Double.parseDouble(marks[row][3]);
double score3 = Double.parseDouble(marks[row][4]);
double score4 = Double.parseDouble(marks[row][5]);
average = score1*0.1 + score2*0.4 + score3*0.2 + score4*0.3;
mean = average/row;
stdDev = Math.sqrt(Math.pow(average - mean,2)/row);
}
return stdDev;
}
不应平均和平均来计算整个数据集?你总是覆盖以前计算的值! – isnot2bad
你是否应该为整个考试中的每个学生计算平均值和stddev,还是为每个学生的考试计算平均值和stddev? – Joni
@ isnot2bad是的,我知道它每次都会覆盖它。我不知道如何计算平均值。对于我只需要打印它们的另一部分来说,这很好,但这一部分我正因为这个确切原因而苦苦挣扎。 – JavaRookie